Script pentru cautare live cu ajax-php-mysql

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

Script pentru cautare live cu ajax-php-mysql

salut, am si eu o problema, am un script php de cautare in bd si este simplu dar as vrea ca sa il modific si sa imi caute cum cauta pe google adica atunci cand scriu un o litera sa imi apara o lista expandata cu ceea ce este in bd si se leaga de litera respectiva sau cand caut un nume sa imi arate o lista expandata cu numele scris in casutza aceea. nu stiu cum sa fac, va rog sa ma ajutati si cu acesta problema. va multumesc, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

nikuu2 Mesaje:22

trif Mesaje:500
salut, am gasit un script de cautare live destul de bun cu ajax+php+mysql si merge ca la google. aici sunt sursele:
index.html

Cod: Selectaţi tot

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cautare live cu ajax + php + mysql</title>
<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript">
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("cautare.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$('#suggestions').show();
					$('#autoSuggestionsList').html(data);
				}
			});
		}
	} // lookup
	
	function fill(thisValue) {
		$('#inputString').val(thisValue);
		setTimeout("$('#suggestions').hide();", 400);
	}
</script>

<style type="text/css">
	body {
	font-family: Helvetica;
	font-size: 15px;
	color: #000;
	background-color: #fff;
	}
	h3 {
		margin: 0px;
		padding: 0px;	
	}
	.suggestionsBox {
		position: relative;
		left: 0px;
		margin: 0px 0px 0px 0px;
		width: 223px;
		background-color: #fff;
		border: 0px solid #000;	
		color: #000;
	}
	.suggestionList {
		margin: 0px;
		padding: 0px;
	}
	.suggestionList li {
		margin: 0px 0px 3px 0px;
		padding: 3px;
		cursor: pointer;
	}
	.suggestionList li:hover {
		background-color: #DDF7FF;
	}
</style>
</head>
<body>
	<div>
		<form>
			<div> Cauta membru dorit:<br />
				<input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
		  </div>
			<div class="suggestionsBox" id="suggestions" style="display: none;">
				<div class="suggestionList" id="autoSuggestionsList">
				</div>
			</div>
		</form>
	</div>

</body>
</html>
cautare,php

Cod: Selectaţi tot

<?php
	$db = new mysqli('localhost', 'utilizator' ,'parola', 'baza_de_date');
	if(!$db) {
		echo 'Eroare: Conectare la baza de date este esuata.';
	} else {
		if(isset($_POST['queryString'])) {
			$queryString = $db->real_escape_string($_POST['queryString']);
			if(strlen($queryString) >0) {
				$query = $db->query("SELECT coloana FROM tabelul WHERE coloana LIKE '$queryString%' LIMIT 10");//"coloana" se scrie si mai jos in secventa unde este "coloana_ta"
				if($query) {
					while ($result = $query ->fetch_object()) {
	         			echo '<li onClick="fill(\''.$result->coloana_ta.'\');">'.$result->coloana_ta.'</li>';
	         		}
				} else {
					echo 'Eroare: Este o problema cu QUERY.';
				}
			} else {
			} 
		} else {
			echo 'Este interzis accesul la acest script!';
		}
	}
?>
jquery-1.2.1.pack.js
cautati aici
http://code.google.com/p/jqueryjs/downloads/list jquery-1.2.1.pack.js
Le puneti intr-un folder si sa faceti bd sau daca o aveti facuta doar modificati in cautare.php ceea ce v-am aratat si in special conectarea la bd. daca sunt ceva intrebari, postati aici. cu stima trif

p.s. pt marplo, te rog poti modifica titlul temei acesteia creare lista expandata dupa o anumita cautare cu script pentru cautare live cu ajax+php+mysql. multumesc mult.
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

trif Mesaje:500
salut, mai in sus am uitat sa pun si secventa de afisare a rezultatelor cat si butonul de cautare, asa ca acum le-am facut. si sunt in felul urmator:
in primul rand trebuie sa modificati din index.html in index.php deoarece in locul codului pe care vi l-am dat mai sus il inlocuiti cu acesta:

Cod: Selectaţi tot

<form action="" method="post">
			<div> Cauta valoarea dorita:<br />
				<input type="text" size="30" name="term" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
				<input type="submit" name="submit" value="Cauta" />
		  </div>
			<div class="suggestionsBox" id="suggestions" style="display: none;">
				<div class="suggestionList" id="autoSuggestionsList">
				</div>
			</div>
		</form>
	</div>
<?php
if (isset($_POST['term']) && strlen($_POST['term'])>1) {
  $term = trim($_POST['term']);
  $conn = mysql_connect("localhost", "root", "parola") or die("Nu m-am putut conecta la serverul MySQL");
  $selectdb = mysql_select_db('baza_de_date);
  if (!$selectdb) echo "Baza de date nu a putut fi selectata: ". mysql_errno(). " : ". mysql_error();
  if(get_magic_quotes_gpc()) { $term = stripslashes($term); }
  $term = mysql_real_escape_string($term);
  $sql = "SELECT * FROM `tabelul` WHERE `coloana1` LIKE '%$term%' OR `coloana2` LIKE '%$term%' OR `coloana3` LIKE '%$term%'";
  $resql = mysql_query($sql, $conn) or trigger_error(E_USER_ERROR);
  if (mysql_num_rows($resql) == 0) { echo 'Nu avem o astfel de inregistrare'; }
  else {
   echo '<b>Rezultatele cautari: <font color="red"> '.$term.'</font></b><br><br>';
    echo '<table border="1" width="450" >';
   echo '<tr> <th> Coloana1 </th> <th> Coloana4 </th></tr>';
    while ($rand = mysql_fetch_assoc($resql)) {
      $col = stripslashes($rand['coloana1']). stripslashes($rand['coloana2']). stripslashes($rand['coloana3']);
      echo '<tr>  <td><a href="rezultate.php?id='.$rand['coloana0'].' "><center>'.$rand['coloana1'].' '.$rand['coloana2].'</center> </td></a> <td><center>'.$rand['coloana4].' </center></td> </tr>';
    } echo '</table>';
  }
}
?>
sa fiu explicit, la mine in bd coloana0=id, coloana1=familie, coloana2=tata, coloana3=mama si coloana4=membrii. acum le modificati dupa cum aveti voi nevoie. daca aveti ceva postati aici pe forum si cu siguranta va va raspunde cineva in cel mai scurt timp. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

Subiecte similare