我正在用 ajax 发送数据。如何重置数据发送过程?
I am sending a data with ajax. How can I reset the data sending process?
当我 select 一个购买了产品的帐户时,我会弹出一个选项显示它是什么产品,但是如果我们 select 一个购买了另一个产品的帐户产品,这个选项是第二次来了。
我的脚本代码
$("select.account").on('change', function() {
var accId = $(this).children("option:selected").val();
console.log(accId);
$.ajax({
type: 'POST',
url: 'netting/order-ajax.php',
data: {
'accId': accId
},
success: function(data) {
if (data != "FALSE") {
$('#accform').after(data);
} else {
$('#productform').hide();
}
}
})
})
image
我的订单-ajax.php
if (isset($_POST['accId'])) {
$sql = $db->qSql("SELECT * FROM sales INNER JOIN account ON sales.accId = account.accId INNER JOIN product ON sales.productId = product.productId WHERE sales.accId = '{$_POST['accId']}'");
if ($sql->rowCount() > 0) { ?>
<div id="productform" class="form-group">
<label for="recipient-name" class="col-form-label">Ürün & Hizmet</label>
<select class="form-control account" required name="accId">
<option value="">Ürün & Hizmet seçiniz...</option>
<?php
$sql = $db->read("product", [
"columnsName" => "productId",
"columnsSort" => "DESC"
]);
while ($row = $sql->fetch(PDO::FETCH_ASSOC)) { ?>
<option value="<?= $row['productId'] ?>"><?= $row['productTitle'] ?></option>
<?php } ?>
</select>
</div>
.after(data)
不断在表单末尾添加更多内容。
相反,创建一个特定的 div 或您想要放置此内容的内容,然后使用 .html(data)
写入其中。这将在您每次 运行 时覆盖内容,而不是将其附加到之前添加的内容。
参考文献:
当我 select 一个购买了产品的帐户时,我会弹出一个选项显示它是什么产品,但是如果我们 select 一个购买了另一个产品的帐户产品,这个选项是第二次来了。
我的脚本代码
$("select.account").on('change', function() {
var accId = $(this).children("option:selected").val();
console.log(accId);
$.ajax({
type: 'POST',
url: 'netting/order-ajax.php',
data: {
'accId': accId
},
success: function(data) {
if (data != "FALSE") {
$('#accform').after(data);
} else {
$('#productform').hide();
}
}
})
})
image
我的订单-ajax.php
if (isset($_POST['accId'])) {
$sql = $db->qSql("SELECT * FROM sales INNER JOIN account ON sales.accId = account.accId INNER JOIN product ON sales.productId = product.productId WHERE sales.accId = '{$_POST['accId']}'");
if ($sql->rowCount() > 0) { ?>
<div id="productform" class="form-group">
<label for="recipient-name" class="col-form-label">Ürün & Hizmet</label>
<select class="form-control account" required name="accId">
<option value="">Ürün & Hizmet seçiniz...</option>
<?php
$sql = $db->read("product", [
"columnsName" => "productId",
"columnsSort" => "DESC"
]);
while ($row = $sql->fetch(PDO::FETCH_ASSOC)) { ?>
<option value="<?= $row['productId'] ?>"><?= $row['productTitle'] ?></option>
<?php } ?>
</select>
</div>
.after(data)
不断在表单末尾添加更多内容。
相反,创建一个特定的 div 或您想要放置此内容的内容,然后使用 .html(data)
写入其中。这将在您每次 运行 时覆盖内容,而不是将其附加到之前添加的内容。
参考文献: