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%)
-----


Ok chyba znalazłem problem.

I chyba szukałem nie tam gdzie trzeba.
Prawdopodobnie problemem jest funkcja jquery
  1. replaceWith
, która po prostu kasuje diva (podmienia), zatem drugie kliknięcie nie znajduje miejsca do którego może załadowac wynik.

Dzieki panowie za w pewnym sensie nakierowanie na rozwiązanie (IMG:style_emoticons/default/smile.gif)



Panowie jeszcze pociągnę temat:


  1. <tr>
  2. <td class="form_thumb"></td>
  3. <td class="dkfp_tytul" valign="middle"></td>
  4. <td class="srodek odstep_dkfp"></td>
  5. <td class="srodek odstep_dkfp"></td>
  6. <td class="srodek odstep_dkfp"></td>
  7. <td class="srodek odstep_dkfp"></td>
  8. <td class="srodek odstep_dkfp">
  9. <div class="list_select_form">
  10. <form method="post" class="dkfp_add_to_cart" >
  11. <?php dkfp_select_price(); ?>
  12. </div></td>
  13. <td style="text-align:right;">
  14. <input type="hidden" id="dkfp_qty" name="dkfp_qty" class="dkfp_cart_qty" value="1" />
  15. <input type="hidden" id="dkfp_product_id" name="dkfp_product_id" value="<?php echo $post->ID; ?>" />
  16. <input type="hidden" id="dkfp_action" name="dkfp_action" value="add" />
  17. <input class="wyr_prawo do_koszyka_button" type="submit" value="Dodaj do koszyka" /></form>
  18. </td>
  19. </tr>


Jak w tym wypadku mając pętlę przesyłać formularz po kliknięciu na SUBMIT .do_koszyka_button"?
Jak się do tego dobrać?
Czy muszę nadać jakiemuś elementowi ID? Mogę to zrobić jedynie przez użycie zmiennej $post->ID.
Chyba, ze da się poprzez selektory jquery odwołać do każdego przycisku z osobna.
Obecnie dodaje mi do koszyka tylko pierwszą pozycję bez względu na to który przycisk nacisnę.

Przkład jest podobny do tego z tematu jednak tam o tyle wystąpiła pomyłka, że odwołanie było do klasy przypisanej do form, a nie do przycisku submit.


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


Powyższe zwróci oczywiście undefined.
W zasadzie tylko ten problem mi pozostał by uruchomić dodawanie do koszyka za pomocą ajaxa.

Ten post edytował hejkumkejkum 30.01.2014, 14:05:12
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: 7.10.2025 - 23:23