Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][HTML][PHP]Koszyk Ajax jquery
Forum PHP.pl > Forum > Przedszkole
redosystem
Witam wszystkich

proszę o pomoc w dość prostej sprawie

Próbuje wykonać prosty koszyk koszyk sesyjny jeżeli mam tylko 1 <form> wszystko działa ale w przypadku zaistnienia na stronie np 2 for działa ale dla pierwszego formularza

to wywołuje w pętli (jest to lista produktów) w form próboeałem dodawać indywidualne ID ale nie wiem jak to później wywołać z pozycji Jquery

  1.  
  2. <?php
  3. $product_array = $db_handle->runQuery("SELECT * FROM koszyk ORDER BY id ASC");
  4. if (!empty($product_array)) {
  5. foreach($product_array as $key=>$value){
  6. ?>
  7.  
  8. <form action="" id="">
  9. <img src="<?php print $generator; ?>/<?php echo $product_array[$key]["image"]; ?>">
  10. <?php echo $product_array[$key]["name"]; ?>
  11. <?php echo $product_array[$key]["price"]; ?>
  12.  
  13. <input type="hidden" name="action" value='add'>
  14. <input type="hidden" name="code" value='<?php echo $product_array[$key]["code"]; ?>'>
  15. <input type="text" class="product-quantity" name="quantity" value="1" size="2" />
  16. <input type="button" id="przycisk" value="dodaj do koszyka" />
  17.  
  18. </form>
  19.  
  20. <?php } } ?>
  21.  


po czym chce przesłać to ajax'em

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $("#przycisk").click(function() {
  4.  
  5. var formData = {action:""+$('input[name=action]').val(), quantity:""+$('input[name=quantity]').val(), code: ""+$('input[name=code]').val()};
  6.  
  7. //alert($('input[name=code]').val());
  8.  
  9. $.ajax({
  10. url: "dokoszyka.php",
  11. type: "POST",
  12. data: formData,
  13. success: function(msg) {
  14. $("#kontener").text(msg);
  15. $("#shopping-cart").load("product-grid.php");
  16. }
  17. });
  18. });
  19. });
  20. </script>


Z góry dziękuje za pomoc
nospor
Po pierwsze skoro lecisz ajaxem, to zadne form ci nie sa potrzebne.

Po drugie, kazdy przycisk ma miec unikalne ID, albo nawet lepiej, zamiast ID nadawaj klasse potem
nie $("#przycisk").click(function() {
a: $(".jakas_klasa").click(function() {

A pozniej w tej function, pobieraj dane elementow z tego bloku co jest przycisk i po sprawie
redosystem
nie za bardzo wiem tylko jak mam przerobić tą linijkę aby brała dane z bloku

  1. var formData = {action:""+$('input[name=action]').val(), quantity:""+$('input[name=quantity]').val(), code: ""+$('input[name=code]').val()};


próbowałem:

  1. var formData = $(this).serialize(),


ale nie działa
viking
this odnosi się do klikniętego przycisku a nie formularza. Możesz coś na kształt $(this).parents('form'). Chociaż lepiej łapać zdarzenie submit.
I debuguj sobie console.log(this); żeby zobaczyć z jakim elementem pracujesz.
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.