Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][PHP]Pętla Foreach oraz wywołanie zmiennej przez ajax
hejkumkejkum
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.11.2007

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


Mam sobie w pętli w PHP wygenerowany form z polami input ukrytymi do przesłania $_POSTem.
Chciałem się dobrac do nich poprzez ajax.

Na przykład coś takiego

  1. <form class="sss_dodaj_class" action="" method="post">
  2. <input type="hidden" id="sss_product_id" name="sss_product_id" value="<?php echo $id; ?>" />
  3. <input type="hidden" id="sss_action" name="sss_action" value="dodaj" />
  4. <input type="image" name="dodaj" class="sss_podsumowanie_dodaj" value="dodaj" title="dodaj"/>
  5. </form>
  6.  
  7.  
  8. <form class="sss_dodaj_class" action="" method="post">
  9. <input type="hidden" id="sss_product_id" name="sss_product_id" value="<?php echo $id; ?>" />
  10. <input type="hidden" id="sss_action" name="sss_action" value="dodaj" />
  11. <input type="image" name="dodaj" class="sss_podsumowanie_dodaj" value="dodaj" title="dodaj"/>
  12. </form>
  13.  
  14. <form class="sss_dodaj_class" action="" method="post">
  15. <input type="hidden" id="sss_product_id" name="sss_product_id" value="<?php echo $id; ?>" />
  16. <input type="hidden" id="sss_action" name="sss_action" value="dodaj" />
  17. <input type="image" name="dodaj" class="sss_podsumowanie_dodaj" value="dodaj" title="dodaj"/>
  18. </form>

Problem polega na tym, że obecnie w pętli mam tylko clasy, czyli nie mam się jak odwołać do każdego form z osobna.
I po wywołaniu
  1. jQuery(".sss_dodaj_class").click(function(){


Za każdym razem zwróci ten sam wynik, czyli prawdopodobnie elementu pierwszego z pętli.
W jaki sposób zrobić, żeby to działało jak należy.
Wiem, że mogę do pętli dodać zmienną $i=0 $i++ i dodać to do class "sss_dodaj_class<?php echo $i; ?>"
Ale może istnieje lepszy sposób?
Jak to ugryźć?

Ten post edytował hejkumkejkum 2.01.2014, 02:54:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hejkumkejkum
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.11.2007

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


Kurcze faktycznie gdy zrobiłem test kodem:

  1. jQuery(".sss_dodaj_classs").click(function(){
  2. var a = jQuery('#sss_product_id',this);
  3. alert(a.val());
  4. });


To wyniki są odrębne dla każdejgo elementu form. I rzeczywiście działa to bez problemu.


Ale gdy podpiąłem to:


  1. jQuery(".sss_dodaj_class").click(function(){
  2.  
  3. var sss_product_id = jQuery('#sss_product_id', this).val();
  4. var sss_action = jQuery('#sss_action', this).val();
  5.  
  6. jQuery.ajax({
  7. type: 'POST',
  8. url: MyAjax.ajaxurl,
  9. data: {
  10. action: "jakas_funkcja",
  11. product_id: sss_product_id,
  12. sss_action: sss_action
  13. },
  14. success: function(data){
  15. //alert(data);
  16. jQuery('.sss_koszyk_button_v').replaceWith(data);
  17. }
  18. });
  19. return false;
  20. });



To zwraca mi wartość tylko pierwszego form, bez względu na który guzik nacisnę.

Dodam, że chodzi o Wordpressa.
Usiłuję rozgryźć ajaxa i trafiłem na ścianę właśnie z tym problemem.

Czyli gdzieś popełniłem błąd ale nie wiem gdzie (IMG:style_emoticons/default/smile.gif)

Ten post edytował hejkumkejkum 2.01.2014, 22:48:29
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 03:36