Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]Skrypt wyświetlający wyniki z bazy danych
Forum PHP.pl > Forum > Przedszkole
David_Rook
Witam Panowie,

Jako, że jestem laikiem jeśli chodzi o technologię AJAX-a chciałbym Was prosić o pomoc w zakresie stworzenia pewnego skryptu akcji.

Mam tak wyglądający formularz:


Jako, że jestem łasuch na wszelkiego rodzaju świecidełka na stronach www, chciałbym dodać następującą funkcjonalność.
Po kliknięciu przycisku SZUKAJ, chciałbym, aby na środku div'a z formularzem pokazała się standardowa ikona podczas korzystania z AJAX'a, a wyniki zostały zwrócone nie na nowej stronie www, a w tym div'ie w którym znajdował się formularz.

Czy trudno jest coś takiego zrobić? Kompletnie nie mam pojęcia jak do tego się zabrać, a tutoriale, które widziałem w sieci odnoszą się do wyszukiwarek z jednym polem input.

Za wszelkie sugestie, podpowiedzi i pomoc będę bardzo zobowiązany.

Poza tym chciałbym Was, drodzy koledzy prosić o pomoc związaną z wyborem technologii/frameworka do zarządzania pewną stroną, ale o tym w osobnym wątku.

Pozdrawiam
jaslanin
http://net.tutsplus.com/tutorials/javascri...h-using-jquery/

po prostu na callback'u funkcji ajax robisz podmianę diva.

jeden czy wiele inputów to nie problem, bo dokładasz po prostu nowe pola POST lub GET
David_Rook
Mógłbyś podać mi do siebie jakieś namiary, bo mam kilka pytań....
David_Rook
Głównie chodzi mi o to, czy muszę coś dać w sekcji ajax-succes
  1. $.ajax({
  2. type: "POST",
  3. url: "search_hipoteczny",
  4. data: dataString,
  5. success: function() {
  6. $('#contact_form').html("<div id='message'></div>");
  7. $('#message').html("<h2>Contact Form Submitted!</h2>")
  8. .append("<p>We will be in touch soon.</p>")
  9. .hide()
  10. .fadeIn(1500, function() {
  11. $('#message').append("<img id='checkmark' src='images/check.png' />");
  12. });


Bo skrypt search_hipoteczny zwraca mi tabele wyszukanych kredytów...
tab
hm ciezko mi cos mowiac nie znajac w ogole podstaw dzialania Twojego skryptu, ale jak jzu wyslesz to zapytanie do ajaxa, to w skrypcie php, jak juz sobie obrobisz te dane to nalepiej uzyc json'a. np:

  1. $kredyt = $_POST['kredyt'];
  2. // tutaj jakies zapytania do bazy z kredytem
  3. // $stmt czyli resource
  4. $kredyty = array();
  5. foreach ($stmt as $row)
  6. {
  7. $kredyty[] = $row['kredyt']; // dodanie kazdego kredytu do tablicy kredyty
  8. }
  9.  
  10. echo json_encode($kredyty);


i dzieki temu mozesz sie z poziomy juery wygodnie odwolywac do tego co Ci zwroci baza danych

success(json)
{
$('#kredyty').val(json['kredyty']);
}

nie wiem czy o to Ci chodzilo.. tongue.gif
David_Rook
Zaraz Ci wytlumacze o co mi chodzi...

Mam taki kod formularza:
Formularz

Pod to jest podpięty następujący skrypt search_hipoteczny.php:
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Wyniki wyszukiwania</title>
  5. <link type="text/css" rel="stylesheet" href="/css/wyniki_wyszukiwan.css" media="screen" />
  6. <script type="text/javascript" src="/js/tablecloth.js"></script>
  7. </head>
  8. <body>
  9. <?php
  10. include ("config.php");
  11.  
  12. //ustawiam zmienna, ktora przekazuje wklad
  13. $cel_kredytu=($_POST['cel_kredytu']);
  14. $rynek=($_POST['rynek']);
  15. $rynek2=($_POST['rynek2']);
  16. $przedmiot=($_POST['przedmiot']);
  17. $przedmiot2=($_POST['przedmiot2']);
  18. $przedmiot3=($_POST['przedmiot3']);
  19. $zabezpieczenie=($_POST['zabezpieczenie']);
  20. $suma_konsumpcyjnych=($_POST['suma_konsumpcyjnych']);
  21. $wartosc=($_POST['wartosc']);
  22. $kredyt=($_POST['kredyt']);
  23. $waluta=($_POST['waluta']);
  24. $raty=($_POST['raty']);
  25. $okres=($_POST['okres']);
  26. $wiek=($_POST['wiek']);
  27.  
  28.  
  29. if ($cel_kredytu == 'Zakup')
  30. {
  31.  
  32. //zapytanie
  33. $wyszukaj="SELECT bank, nazwa_kredytu, oprocentowanie, prowizja, rata
  34. FROM K_Hipoteczny_Zakup
  35. WHERE rynek = '$rynek'
  36. AND przedmiot = '$przedmiot'
  37. AND w_nieruchomosci_min < $wartosc
  38. AND w_nieruchomosci_max >= $wartosc
  39. AND w_kredytu_min < $kredyt
  40. AND w_kredytu_max >= $kredyt
  41. AND waluta = '$waluta'
  42. AND rodzaj_rat = '$raty'
  43. AND okres_kr_min < $okres
  44. AND okres_kr_max >= $okres
  45. AND wiek_najst_kredytobiorcy >= $wiek
  46. GROUP BY oprocentowanie";
  47. }
  48.  
  49. if ($cel_kredytu == 'BudowaDomu')
  50. {
  51. $wyszukaj="SELECT bank, nazwa_kredytu, oprocentowanie, prowizja, rata
  52. FROM K_Hipoteczny_Budowa
  53. WHERE w_nieruchomosci_min < $wartosc
  54. AND w_nieruchomosci_max >= $wartosc
  55. AND w_kredytu_min < $kredyt
  56. AND w_kredytu_max >= $kredyt
  57. AND waluta = '$waluta'
  58. AND rodzaj_rat = '$raty'
  59. AND okres_kr_min < $okres
  60. AND okres_kr_max >= $okres
  61. AND wiek_najst_kredytobiorcy >= $wiek
  62. GROUP BY oprocentowanie";
  63. }
  64.  
  65. if ($cel_kredytu == 'Refinansowanie')
  66. {
  67. $wyszukaj="SELECT bank, nazwa_kredytu, oprocentowanie, prowizja, rata
  68. FROM K_Hipoteczny_Refin
  69. WHERE przedmiot = '$przedmiot2'
  70. AND w_nieruchomosci_min < $wartosc
  71. AND w_nieruchomosci_max >= $wartosc
  72. AND w_kredytu_min < $kredyt
  73. AND w_kredytu_max >= $kredyt
  74. AND waluta = '$waluta'
  75. AND rodzaj_rat = '$raty'
  76. AND okres_kr_min < $okres
  77. AND okres_kr_max >= $okres
  78. AND wiek_najst_kredytobiorcy >= $wiek
  79. GROUP BY oprocentowanie";
  80. }
  81.  
  82. if ($cel_kredytu == 'Konsolidacja')
  83. {
  84. $wyszukaj="SELECT bank, nazwa_kredytu, oprocentowanie, prowizja, rata
  85. FROM K_Hipoteczny_Konsol
  86. WHERE rynek = '$rynek2'
  87. AND przedmiot = '$przedmiot3'
  88. AND suma_kred_konsum >= '$suma_konsumpcyjnych'
  89. AND w_nieruchomosci_min < $wartosc
  90. AND w_nieruchomosci_max >= $wartosc
  91. AND w_kredytu_min < $kredyt
  92. AND w_kredytu_max >= $kredyt
  93. AND waluta = '$waluta'
  94. AND rodzaj_rat = '$raty'
  95. AND okres_min < $okres
  96. AND okres_max >= $okres
  97. AND wiek_najst_kredytobiorcy >= $wiek
  98. GROUP BY oprocentowanie";
  99. }
  100.  
  101. if ($cel_kredytu == 'Pozyczka')
  102. {
  103. //zapytanie
  104. $wyszukaj="SELECT bank, nazwa_kredytu, oprocentowanie, prowizja, rata
  105. FROM K_Hipoteczny_Pozycz
  106. WHERE zabezpieczenie = '$zabezpieczenie'
  107. AND w_nieruchomosci_min < $wartosc
  108. AND w_nieruchomosci_max >= $wartosc
  109. AND w_kredytu_min < $kredyt
  110. AND w_kredytu_max >= $kredyt
  111. AND waluta = '$waluta'
  112. AND rodzaj_rat = '$raty'
  113. AND okres_min < $okres
  114. AND okres_max >= $okres
  115. AND wiek_najst_kredytobiorcy >= $wiek
  116. GROUP BY oprocentowanie";
  117. }
  118.  
  119. $results=mysql_query($wyszukaj) or die (mysql_error());
  120. $procent='%';
  121.  
  122. if(mysql_num_rows($results) > 0)
  123. {
  124. echo "<center><h2>Wyniki wyszukiwania:</h2></center>";
  125. echo "<table align=center>";
  126. echo "<tr>";
  127. echo "<th><b>Bank</b></th>";
  128. echo "<th><b>Nazwa Kredytu</b></th>";
  129. echo "<th><b>Oprocentowanie</b></th>";
  130. echo "<th><b>Prowizja</b></th>";
  131. echo "<th><b>Rata</b></th>";
  132. echo "</tr>";
  133.  
  134. while($row = mysql_fetch_object($results))
  135. {
  136. echo "<tr>";
  137. echo "<td>".$row->bank."</td>";
  138. echo "<td>".$row->nazwa_kredytu."</td>";
  139. echo "<td>".$row->oprocentowanie."$procent</td>";
  140. echo "<td>".$row->prowizja."$procent</td>";
  141. echo "<td>".$row->rata." $waluta</td>";
  142. echo "</tr>";
  143. }
  144. echo "</table>";
  145. }
  146. else
  147. {
  148. echo "<h2><center>Brak wyników dla podanych parametrów!</center></h2>";
  149. }
  150. ?>
  151. </body>
  152. </html>


I chciałbym, żeby po kliknięciu Szukaj (na tym obrazku wyżej) przeładować tego Div-a i wyświetlić efekt działania skryptu search_hipoteczny.php

Próbowałem na podstawie tego tutorialu co podesłał kolega Jasianin, ale właśnie tej kwestii nie rozumiem, czy mam dodać jaki atrybut w sekcji success, czy też nie..
Json'a w ogóle nie znam i nie mam pojęcia jak tego użyc...

Dobra, znalazłem jakaś podpowiedź -> http://www.jotorres.com/2011/11/display-da...jquery-and-php/

Spróbuję z tym smile.gif
tab
tak w success musisz dac argument, np
success(msg)
po to zeby moc sie jakos odwołac do odpowiedzi serwiera
czyli np msg.responseText (dla xmla) albo msg['zmienna'] (w przypadku jsona)
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.