Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX][PHP]Przesyłanie danych
-ajax-
post 17.01.2012, 12:03:57
Post #1





Goście







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 ;/

Go to the top of the page
+Quote Post
cycofiasz
post 17.01.2012, 12:34:29
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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

Używaj konsoli błędów w przeglądarce i firebuga
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 12:38:36
Post #3





Goście







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ć?
Go to the top of the page
+Quote Post
cycofiasz
post 17.01.2012, 13:14:25
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Dane zwracane są do zmiennej msg więc jak chcesz ją wyświetlić to robisz to tak: alert( "Dane zwrotne: " + msg);
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 13:17:29
Post #5





Goście







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?
Go to the top of the page
+Quote Post
zdemotywowany
post 17.01.2012, 13:20:36
Post #6





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 15.01.2012

Ostrzeżenie: (0%)
-----


Odpowiednio przerobić musisz.
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 13:22:47
Post #7





Goście







Ojoj, ale ja chce to napisać w jQuery
Go to the top of the page
+Quote Post
cycofiasz
post 17.01.2012, 13:29:43
Post #8





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No ale co ty chcesz zrobić z odebranymi danymi?
Go to the top of the page
+Quote Post
zdemotywowany
post 17.01.2012, 13:32:42
Post #9





Grupa: Zarejestrowani
Postów: 74
Pomógł: 3
Dołączył: 15.01.2012

Ostrzeżenie: (0%)
-----


Cytat(ajax @ 17.01.2012, 13:22:47 ) *
Ojoj, ale ja chce to napisać w jQuery


Na tej stronie jest również jQuery, poszukaj.
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 13:32:42
Post #10





Goście







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ć.
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 13:39:26
Post #11





Goście







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ć?


Go to the top of the page
+Quote Post
cycofiasz
post 17.01.2012, 13:51:28
Post #12





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
-ajax-
post 17.01.2012, 13:59:21
Post #13





Goście







Działa, już działa, nie denerwuj sie tak proszę i bardzo dziękuję za pomoc wink.gif

pozdrawiam
Go to the top of the page
+Quote Post
cycofiasz
post 17.01.2012, 14:07:59
Post #14





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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

smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 09:48