Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX][PHP]Przesyłanie danych
Forum PHP.pl > Forum > Przedszkole
ajax
Witam,

W pliku panel_admin.php posiadam selecta, gdzie przy wybraniu jednej z pozycji, chce aby przesłał jego wartość value do bazy danych.

zaznaczam, że korzystam ze smartów.

  1. <th>Lista sklepów</th><th>Lista Produktów</th>
  2. <tr>
  3. <td>
  4. <select id="single" name="kat_sklep" size="25">
  5. {foreach from=$sklepy item=row}
  6.  
  7. <option value="{$row.id}">{$row.id}</option>
  8.  
  9. {/foreach}
  10. </select>
  11. </td>
  12. </tr>



kod jQuery:

  1. $("select#single").change(function () {
  2.  
  3. var id = $(this).val();
  4. var url = "{$des}";
  5.  
  6. alert("sklep id: "+id);
  7.  
  8. data = "id=" + id;
  9.  
  10. $.ajax({
  11. type: 'POST',
  12. url: url,
  13. data: data,
  14. dataType: html,
  15. success: function(msg) {
  16. alert( "Dane zwrotne: " + id );
  17. },
  18. error: function(xml) {
  19. alert( "Wystąpił błąd: \n" + data );
  20. }
  21. });
  22.  
  23. });
  24. });


alert wyświetla prawidłową wartość, ale ajax coś nnie działa

kod php w którym powinien odebrać dane:

  1. ...
  2.  
  3. $tpl = new Smarty();
  4. $tpl->template_dir='templates/';
  5. $tpl->compile_dir='templates_c/';
  6.  
  7. $id_ajax = $_POST['id'];
  8.  
  9. if(!empty($id_ajax))
  10. {
  11. $post_ajax = true; //tutaj zapytanie BD
  12. }
  13.  
  14. if($post_ajax)
  15. {
  16. echo 'dsd';
  17. $produkt = 'zapisano'.$_POST['id'];
  18. $tpl -> assign('produkty', $produkt);
  19. }
  20.  
  21. ...




Czy mógłbym uprzejmie prosić o jakąś pomoc ;/

cycofiasz
Zamień dataType: html, na dataType: "html",

Używaj konsoli błędów w przeglądarce i firebuga
ajax
Nom, teraz mi wyświetla alert z funkcji:

  1. success: function(msg) {
  2.  
  3. alert( "Dane zwrotne: " + id );
  4. },


ale nie pobiera danych w PHP, czy w funkcji success, należy coś jeszcze ustawić?
cycofiasz
Dane zwracane są do zmiennej msg więc jak chcesz ją wyświetlić to robisz to tak: alert( "Dane zwrotne: " + msg);
ajax
No wiem, właśnie mi to nie pasuje, tyle, że ja jestem zielony z ajax'a i nie wiem jak to poprawnie napisać :X mógłbyś mi dać jakąś podpowiedź, co zrobić, abym mógł prawidłowo odebrać tą wartość?

zakładam, że:

  1. success: function(data) {
  2. ...


i co dalej?
zdemotywowany
Odpowiednio przerobić musisz.
ajax
Ojoj, ale ja chce to napisać w jQuery
cycofiasz
No ale co ty chcesz zrobić z odebranymi danymi?
zdemotywowany
Cytat(ajax @ 17.01.2012, 13:22:47 ) *
Ojoj, ale ja chce to napisać w jQuery


Na tej stronie jest również jQuery, poszukaj.
ajax
Chce odebrać wartość z select'a (id), na jej podstawie chce wykonać zapytanie do bazy mysql. Następnie pobrać z BD jakąś tam ilość rekordów do tablicy i wyświetlić.
ajax
przepraszam, ze smiece drugim postem, ale gdy w:

  1. success: function(data) {
  2.  
  3. alert(data);
  4. }


napisze alert(data), ukaże się źródło kodu HTML w którym wyświetla prawidłowo pobraną pozycję,

  1. <div>zapisano: 7409</div>


zamiast:

  1. <div></div>


pytanie w takim razie jak tą wartość po prostu poprawnie zwrócić?


cycofiasz
Chaos który panował na początku istnienia wszechświata jest niczym w porównaniu do twojego javascriptu i opisu problemu!

W końcu pobiera poprawnie dane z php przez ajax czy nie? I co chcesz z tymi danymi zrobić zamiast alertować?
ajax
Działa, już działa, nie denerwuj sie tak proszę i bardzo dziękuję za pomoc wink.gif

pozdrawiam
cycofiasz
To ja odpowiem filmikiem: http://www.youtube.com/watch?v=1ajkgIfEm2Q&t=0m36s

smile.gif
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.