为什么每次我成功请求ajax时,我的每个php都会执行输出?我只想执行其中一个具有uniqidcart的命令。
HTML:
<ul>
<?php while { ?>
<li class="changeweight">
<form>
<select name="changeq" class="<?php echo $datacart['id_cart']; ?>">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
</li>
<?php } ?>
</ul>
AJax:
$("select[name=changeq]").change(function() {
var selectq = $(this).val();
var selectidcart = $(this).attr("class");
$.ajax({
context : this,
type : "GET",
url : "ajax/changequantity.php",
dataType : "json",
data : {idcart : selectidcart, q : selectq},
success : function(changeq) {
$("li.changeweight").hide().html(changeq.totalweight).fadeIn('slow');
}
});
});
changequantity.php:
<?php
$q = $_GET['q'];
$idcart = $_GET['idcart'];
mysqli_query($connect,"UPDATE cart SET quantity = '$q' WHERE id_cart = '$idcart'");
$cart = mysqli_query($connect,"SELECT * FROM cart WHERE id_cart = '$idcart'");
$datacart = mysqli_fetch_assoc($cart);
$product = mysqli_query($connect,"SELECT * FROM product WHERE id_product = '$datacart[id_product]'");
$dataproduct = mysqli_fetch_assoc($product);
$totalweight = $datacart['quantity'] * $dataproduct['weight'];
echo json_encode(array("totalweight" => $totalweight));
?>
一切都很好,我的数据库上的数据存储,但问题是ajax的成功将适用于每一个php,而li.changeweight.
这里怎么了?
非常感谢。
Hello尝试使用当前对象并获取其父对象
$("select[name=changeq]").change(function() {
var self = this;
var selectq = $(this).val();
var selectidcart = $(this).attr("class");
$.ajax({
context : this,
type : "GET",
url : "ajax/changequantity.php",
dataType : "json",
data : {idcart : selectidcart, q : selectq},
success : function(changeq) {
$(self).parent().parent().hide().html(changeq.totalweight).fadeIn('slow');
}
});
});