jquery ajax成功php的同时


jquery ajax success php while

为什么每次我成功请求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');
            }
        });
    });