witam kozystajac ze skryptu umieszczonego na stronie http://www.w3schools.com/php/php_ajax_livesearch.asp zrobilem livesearch dla wlasnej z tym ze zamiast pliku xml uzywam pliku php i pobieram dane z bazy. wszystko dziala pieknie i bez zarzutow. Skrypt dziala podobnie jak na podanej stronie. kiedy wpiszemy literke do inputa pokazuja sie wyniki, a gdy okno jest puste na stronie niewidnieje nic.

Teraz chialbym zrobic tak aby przy wyswietleniu strony pokazywac najpierw wszystkie wyniki z bazy, a potem je zmieniac jak podamy jakis string w input wyszukiwania.


tak wyglad teraz skrypt ktory otwieram:
  1. <script type="text/javascript">
  2.  
  3. function showResult(str, user)
  4. {
  5.  
  6.  
  7. if (str.length==0)
  8. {
  9. document.getElementById("all-friends-output").innerHTML="";
  10. document.getElementById("all-friends-output").style.border="1px solid white";
  11.  
  12. return;
  13. }
  14. if (window.XMLHttpRequest)
  15. {// code for IE7+, Firefox, Chrome, Opera, Safari
  16. xmlhttp=new XMLHttpRequest();
  17. }
  18. else
  19. {// code for IE6, IE5
  20. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  21. }
  22. xmlhttp.onreadystatechange=function()
  23. {
  24. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  25. {
  26. document.getElementById("all-friends-output").innerHTML=xmlhttp.responseText;
  27. document.getElementById("all-friends-output").style.border="1px solid white";
  28.  
  29. }
  30. }
  31. xmlhttp.open("GET","views/galeria/friends/livesearch/allfriends.php?q="+str+"&user="+user,true);
  32. xmlhttp.send();
  33. }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. szukaj znajomych <br />
  40.  
  41.  
  42. <input type="text" id="pm-adresat-field" size="30" onkeyup="showResult(this.value, <?echo $_GET['id'];?>);" />
  43. <div id="all-friends-output"></div>
  44.  
  45.  

a tak wyglada skrypt php do ktorego przesylam dane:
  1. <?php
  2. include("../../../../settings.php");
  3.  
  4.  
  5. if (!$connect)
  6. {
  7. die('Could not connect: ' . mysql_error());
  8. }
  9.  
  10. $db;
  11.  
  12.  
  13.  
  14.  
  15. $search = $_GET['q']; //przesylany string
  16.  
  17. $user_id = $_GET["user"]; //uzytkownik
  18.  
  19.  
  20. $wyniki=explode(" ",$search);
  21. $warunki=" (user_name LIKE '%$wyniki[0]%' || user_surname LIKE '%$wyniki[0]%')";
  22. for ($i=1;$i<count($wyniki);$i++)
  23. {
  24. $warunki.=" and (user_name LIKE '%$wyniki[$i]%' || user_surname LIKE '%$wyniki[$i]%')";
  25. }
  26.  
  27. $friend_list = mysql_query("SELECT * FROM friends AS a INNER JOIN users AS b LEFT JOIN profile_photos AS c ON b.avatar = c.pp_id AND b.user_id = c.user_id WHERE a.user_id = $user_id AND a.friend_id = b.user_id AND a.accept = 1 AND $warunki");
  28.  
  29. if (mysql_num_rows($friend_list) == 0)
  30. {
  31. echo'<div id="af-no-matches">Brak wynikow szukania</div>';
  32. }
  33. else
  34. {
  35. while($row = mysql_fetch_assoc($friend_list))
  36. {
  37. echo .......;
  38. }
  39. }
  40.  
  41.  
  42.  
  43. mysql_close($connect);
  44. ?>


odswieze temat gdyz wciaz nie wiem jak to rozwiazac ;(