javascript - jquery ajax 成功 php while

标签 javascript php jquery ajax

为什么每次我成功的ajax请求时,输出都会为我的每个php while执行?我只想要其中一个具有 uniq id_cart 执行的。

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 while li.changeweight。

这里出了什么问题?

非常感谢你。

最佳答案

您好,尝试使用当前对象并获取它的父对象

$("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');
            }
        });
    });

关于javascript - jquery ajax 成功 php while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158814/

相关文章:

javascript - 删除文本时保留 DOM 元素位置

php - 如何为 Drupal 创建一个 View 风格的插件?

PHP Base64 编码 JSON 斜线问题

javascript - 让这个巨魔程序工作

javascript - 了解控件在 JavaScript 中是否有效的更好替代方法?

javascript - 如何根据 JQuery UI 范围 slider 值缩放图像?

javascript - 对如何使用 .then() 使用 promise 链接查询感到困惑

javascript - 在 Laravel 5.3 中使用 Vue.js

php - 错误500,与php建立MYSQL连接

javascript - 单击一次按钮后如何获取 axios.post 信息