亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

發送給 ajax 的值不會改變

發送給 ajax 的值不會改變

搖曳的薔薇 2022-06-16 16:54:22
我有一個 html 打印出多個表單,其中包含數據庫中保存的值/標簽<?php$stmt = $conn->prepare("SELECT * FROM product");if ($stmt->execute()){    $result = $stmt->get_result();    while ($row = $result->fetch_assoc()){?>    <div class="col-xl-3 col-md-4 mb-4">        <div class="card border-bottom-secondary h-100">            <div class="embed-responsive embed-responsive-16by9">                <img src="img/<?php echo $img_src; ?>" alt="" class="card-img-top embed-responsive-item">            </div>            <div class="card-body">                <form>                    <div>                        <h4 class="text-primary"><?php echo $row['name']; ?></h4>                    </div>                    <div>                        <input type="text" id="name" name="name" value="<?php echo $row['name']; ?>" hidden>                        <label for="quantity">Qty. </label>                        <input class="w-25" onclick="this.select();" min="1" name="quantity" value="1" type="number" id="quantity">                        <button type="button" id="save" onclick="saveTemp()">Add</button>                    </div>                </form>            </div>        </div>    </div><?php     }}?>現在這是我的 saveTemp() 函數,它將它存儲在數據庫中:function saveTemp() {var productName = $('#name').val();var quantity = $('#quantity').val();//console.log(productName);//console.log(quantity);$.ajax({    type: "POST",    url: "purchase.php",    data: {        product: productName,        quantity: quantity    },    success: function(){        alert('success');    }});return false;}問題是,每當我單擊要發送的不同表單時,productName 和 quantity 中的值都不會改變。它們仍然包含第一個打印表單的值。例子:假設第一張卡片包含薯條,下一張卡片包含漢堡,即使我點擊漢堡上的添加按鈕,數據庫中插入的值仍然是薯條及其數量,而不是漢堡。PS。如果有幫助,這是我的簡單 purchase.php 腳本。謝謝!}
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您可以使用單獨的表單 ID,如下所示...


看法


<?php

$stmt = $conn->prepare("SELECT * FROM product");

if ($stmt->execute()){

    $result = $stmt->get_result();

    $i = 1; // added

    while ($row = $result->fetch_assoc()){


?>

    <div class="col-xl-3 col-md-4 mb-4">

        <div class="card border-bottom-secondary h-100">

            <div class="embed-responsive embed-responsive-16by9">

                <img src="img/<?php echo $img_src; ?>" alt="" class="card-img-top embed-responsive-item">

            </div>

            <div class="card-body">

                <form id="saveform<?=$i?>"> <!-- form id added -->

                    <div>

                        <h4 class="text-primary"><?php echo $row['name']; ?></h4>

                    </div>

                    <div>

                        <input type="text" id="name" name="name" value="<?php echo $row['name']; ?>" hidden>

                        <label for="quantity">Qty. </label>

                        <input class="w-25" onclick="this.select();" min="1" name="quantity" value="1" type="number" id="quantity">

                        <button type="button" id="save" onclick="saveTemp(this)">Add</button> <!-- pass 'this' from here-->

                    </div>

                </form>

            </div>

        </div>

    </div>

<?php 

    $i++; //incremented here

  }

}

?>

在您的腳本中進行更改...


js


function saveTemp(these) {

var formId = $(these).closest("form").attr("id"); // get form id here

var productName = $('#'+formId+' #name').val(); // assigned form id here

var quantity = $('#'+formId+' #quantity').val(); // assigned form id here

//console.log(productName);

//console.log(quantity);

$.ajax({

    type: "POST",

    url: "purchase.php",

    data: {

        product: productName,

        quantity: quantity

    },

    success: function(){

        alert('success');

    }


});

return false;

}


查看完整回答
反對 回復 2022-06-16
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號