Siemka
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:
<!-- WINO -->
<div id="information_slide" class="slide"> <!-- kontener wyniku z JS -->
<!-- WINO -->
<!-- LOADING -->
<div id="loading_slide" class="slide" style="display: none;"> Wczytywanie informacji o winie...
<br/><br/><img src="images/ajax-loader.gif" /><!-- LOADING -->
<!-- WYWOŁANIE BUTTON -->
<?php
echo '<div id="'.$id['id'].'" class="menuItem">Pokaż wino o ID = '.$id['id'].'
</div>';
?>
<!-- WYWOŁANIE BUTTON -->
Oto kod JS:
$('.menuItem').on('click', function() {
// ID Wina
var id = $(this).attr('id');
$.ajax({
url: 'function.php',
beforeSend: function () {
$('#slides #information_slide').fadeOut(200, function() {
$('#slides #loading_slide').fadeIn(200);
});
},
data: {
funkcja: 'pokaz_wino',
id: id
},
type: 'post',
success: function(wynik) {
setTimeout(function() {
$('#slides #loading_slide').fadeOut(200, function() {
$('#slides #information_slide').html(wynik).fadeIn(400);
});
}, 500);
}
});
// alert(id);
return false;
});
Oto kod PHP:
<?php
if(isset($_POST['funkcja']) && !empty($_POST['funkcja'])) { switch($_POST['funkcja']) {
case 'pokaz_wino':
pokaz_wino($_POST['id']);
break;
}
}
// Funkcja zwrotna wina
function pokaz_wino($id) {
$qwerty = "SELECT * FROM `wina` WHERE id='".$id."' LIMIT 1";
<div id="'.$id['id'].'" class="element">
<!-- kod HTML -->
</div>
';
}
}
?>
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:
<?php
<form method="post" action="" class="jcart">
<fieldset>
<input type="hidden" name="jcartToken" value="'.$_SESSION['jcartToken'].'" />
<input type="hidden" name="my-item-id" value="'.$id['id'].'" />
<input type="hidden" name="my-item-name" value="'.stripslashes($id['nazwa']).'" /> <input type="hidden" name="my-item-price" value="'.stripslashes($cena_przecinek).'" /> <input type="hidden" name="my-item-url" value="" />
<input type="hidden" name="my-item-qty" value="1" size="3" class="item-sztuk" />
<input type="submit" name="my-add-button" value="do koszyka" class="item-button" />
</fieldset>
</form>
';
?>
Skrypt JS jest od samego początku załadowany na stronę:
<script type="text/javascript" language="javascript" src="files/jcart.js"></script>
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 !
Ten post edytował SpiJay 21.09.2013, 14:21:45