Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax][php][mysql] dynamiczne zapytanie w zależności od select
Forum PHP.pl > Forum > XML, AJAX > AJAX
bobo168
Witam napisze w przykładzie o co chodzi bo tak będzie najłatwiej.

Mam formularz
  1.  
  2. <form action="" method="post">
  3.  
  4. <select name="rodzaj">
  5.  
  6. <option value="1">rodzaj1</option>
  7. <option value="2">rodzaj2</option>
  8. <option value="3">rodzaj3</option>
  9.  
  10.  
  11. </form>
  12.  



i chciałbym zrobić dynamiczne zapytanie bez przeładowania strony wykorzystując dane z tego selectu tzn:

  1.  
  2. SELECT * FROM tabela WHERE id=i tutaj wartosc z tego selectu
  3.  



no i potem oczywiście za pomocą php zaraz pod tym selectem wyświetlić te dane , wiem że moge pobrać sobie wszystkie dane z tej tabeli i tylko podzielić je na divy i chować je albo odkrywac za pomocą display, ale jest to mało wydajne gdy bedzie duża tabela. Ajax średnio ogarniam, wydaje mi się że jest coś takiego do zrobienia ale nie wiem od czego się za to zabrać.

Pozdrawiam i z góry dzieki za odpowiedź smile.gif
Jarek099
To wrzucasz do head :
  1. <script type="text/javascript">
  2. function showUser(str)
  3. {
  4. if (str=="")
  5. {
  6. document.getElementById("txtHint").innerHTML="";
  7. return;
  8. }
  9. if (window.XMLHttpRequest)
  10. {// code for IE7+, Firefox, Chrome, Opera, Safari
  11. xmlhttp=new XMLHttpRequest();
  12. }
  13. else
  14. {// code for IE6, IE5
  15. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16. }
  17. xmlhttp.onreadystatechange=function()
  18. {
  19. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20. {
  21. document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  22. }
  23. }
  24. xmlhttp.open("GET","select_ok.php?q="+str,true);
  25. xmlhttp.send();
  26. }


Tak będzie wyglądać kod dla pliku select_ok.php
  1. <?php
  2. include "config.php";
  3. $q=$_GET["q"];
  4.  
  5. $sql="SELECT * FROM `users` WHERE id = '".$q."'";
  6. $result = mysql_query($sql);
  7.  
  8.  
  9.  
  10. <table rules="all" class="tabelka" style="border: 1px solid #000;" align="center">
  11. <td style="width: 20px;"><b>#</b></td>
  12. <td style="width: 140px;"><b>Imie</b></td>
  13. ';
  14.  
  15. while($row = mysql_fetch_array($result))
  16. {
  17. $id = $row['id'];
  18. $imie = $row['imie'];
  19.  
  20.  
  21. <tr>
  22. <td style="width: 20px;"><b>'.$id.'</b></td>
  23. <td style="width: 140px;"><b>'.$imie.'</b></td>
  24. </tr>
  25. ';
  26. }
  27. echo "</table>";
  28.  
  29. ?>


A to będzie formularz :
  1. <select name="cmentarz" onchange="showUser(this.value)">
  2. <option value="1">rodzaj1</option>
  3. <option value="2">rodzaj2</option>
  4. <option value="3">rodzaj3</option>
  5. </form>


Gdzie value="np. 1" to jest id użytkownika który Ci się ukaże .
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.