Siemka headsetsmiley.png

Mam taki problem:

Wykonuję ajaxem zapytanie do bazy o wyświetlanie informacji o określonym ID i wyświetlam je w sformatowanym HTML'em, komunikacie zwrotnym.

Oto kod HTML:
  1. <!-- WINO -->
  2. <div id="slides">
  3. <div id="information_slide" class="slide">
  4. <!-- kontener wyniku z JS -->
  5. </div>
  6. </div>
  7. <!-- WINO -->
  8.  
  9. <!-- LOADING -->
  10. <div id="loading_slide" class="slide" style="display: none;">
  11. Wczytywanie informacji o winie...<br/><br/><img src="images/ajax-loader.gif" />
  12. </div>
  13. <!-- LOADING -->
  14.  
  15. <!-- WYWOŁANIE BUTTON -->
  16. <?php
  17. echo '<div id="'.$id['id'].'" class="menuItem">Pokaż wino o ID = '.$id['id'].'</div>';
  18. ?>
  19. <!-- WYWOŁANIE BUTTON -->


Oto kod JS:
[JAVASCRIPT] pobierz, plaintext
  1. $('.menuItem').on('click', function() {
  2.  
  3. // ID Wina
  4. var id = $(this).attr('id');
  5.  
  6. $.ajax({
  7. url: 'function.php',
  8. beforeSend: function () {
  9. $('#slides #information_slide').fadeOut(200, function() {
  10. $('#slides #loading_slide').fadeIn(200);
  11. });
  12. },
  13. data: {
  14. funkcja: 'pokaz_wino',
  15. id: id
  16. },
  17. type: 'post',
  18. success: function(wynik) {
  19. setTimeout(function() {
  20. $('#slides #loading_slide').fadeOut(200, function() {
  21. $('#slides #information_slide').html(wynik).fadeIn(400);
  22. });
  23. }, 500);
  24. }
  25. });
  26. // alert(id);
  27. return false;
  28. });
[JAVASCRIPT] pobierz, plaintext


Oto kod PHP:
  1. <?php
  2.  
  3. if(isset($_POST['funkcja']) && !empty($_POST['funkcja'])) {
  4. switch($_POST['funkcja']) {
  5. case 'pokaz_wino':
  6. pokaz_wino($_POST['id']);
  7. break;
  8. }
  9. }
  10.  
  11. // Funkcja zwrotna wina
  12. function pokaz_wino($id) {
  13.  
  14. $qwerty = "SELECT * FROM `wina` WHERE id='".$id."' LIMIT 1";
  15. $sql = mysql_query($qwerty);
  16.  
  17. while($id = mysql_fetch_assoc($sql)) {
  18. echo '
  19. <div id="'.$id['id'].'" class="element">
  20. <!-- kod HTML -->
  21. </div>
  22. ';
  23. }
  24.  
  25. }
  26. ?>


W rezultacie mam jak wcześniej opisałem.
Skrypt wyświetla mi informacje (rekordy) o określonym ID z bazy - ta część jest OK.

Problem mam w momencie gdy w funkcji zwrotnej PHP (która wywoływana jest Ajaxem) znajduje się formularz, kożystający także z funkcji ajaxowej:
  1. <?php
  2. echo '
  3. <form method="post" action="" class="jcart">
  4. <fieldset>
  5. <input type="hidden" name="jcartToken" value="'.$_SESSION['jcartToken'].'" />
  6. <input type="hidden" name="my-item-id" value="'.$id['id'].'" />
  7. <input type="hidden" name="my-item-name" value="'.stripslashes($id['nazwa']).'" />
  8. <input type="hidden" name="my-item-price" value="'.stripslashes($cena_przecinek).'" />
  9. <input type="hidden" name="my-item-url" value="" />
  10. <input type="hidden" name="my-item-qty" value="1" size="3" class="item-sztuk" />
  11.  
  12. <input type="submit" name="my-add-button" value="do koszyka" class="item-button" />
  13.  
  14. </fieldset>
  15. </form>
  16. ';
  17. ?>


Skrypt JS jest od samego początku załadowany na stronę:
  1. <script type="text/javascript" language="javascript" src="files/jcart.js"></script>
  2. </head>


W momencie gdy wywołuję funkcję Ajax, odświerza mi WINO i przycisk, który powinien dodać mi je do koszyka, odświerza stronę i dopiero dodaje do koszyka.
Próbowałem już dodać return false; w skrypcie PHP, ale wtedy nie dzieje się kompletnie nic.

Jak rozwiązać ten problem ?

Pozdrawiam !