将 GET 从 PHP 参数发送到 AJAX
Sending GET from PHP parameter to AJAX
我的编码不工作。请问谁能告诉我为什么?
这是代码:
AJAX代码:
function sale(sale_code,sale_quantity) {
if (sale_code.length == 0 || sale_quantity == 0) {
alert("Product's code & quantity are required!");
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("show").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity, true);
xmlhttp.send();
}
}
HTML & PHP:
<?php $qitem = mysqli_query($conn, "SELECT * FROM stocks WHERE stock_type = 'product'");
while($ritem = mysqli_fetch_array($qitem)){ ?>
<div class="col-md-4 col-sm-6 text-center">
<button class="btn btn-info btn-block" type="button" onclick="sale(<?= $ritem['stock_code'] ?>, 1)"><?= $ritem["stock_name"] ?><br />
<small>RM <?= number_format($ritem["stock_sprice"], 2) ?></small>
</button>
</div>
<?php } ?>
sl.php 文件正在运行并返回数据(如果我手动放置的话)。请注意,我为此按钮使用了 bootstrap 选项卡。
我怎么看不到...
你错了:
xmlhttp.open("GET", "sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity, true);
你不能在JavaScript中使用PHP...所以你错了:
sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity
此 <?= $sdoc_no ?>
和 <?= $sdoc_date ?>
不是有效的 JS 代码...
您需要在 js 中将字符串参数用引号引起来:
变化:
sale(<?= $ritem['stock_code'] ?>, 1)
至:
sale('<?= $ritem['stock_code'] ?>', 1)
那么在将参数用作 url 参数之前,您应该对参数进行 uri 编码。
我的编码不工作。请问谁能告诉我为什么? 这是代码:
AJAX代码:
function sale(sale_code,sale_quantity) {
if (sale_code.length == 0 || sale_quantity == 0) {
alert("Product's code & quantity are required!");
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("show").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity, true);
xmlhttp.send();
}
}
HTML & PHP:
<?php $qitem = mysqli_query($conn, "SELECT * FROM stocks WHERE stock_type = 'product'");
while($ritem = mysqli_fetch_array($qitem)){ ?>
<div class="col-md-4 col-sm-6 text-center">
<button class="btn btn-info btn-block" type="button" onclick="sale(<?= $ritem['stock_code'] ?>, 1)"><?= $ritem["stock_name"] ?><br />
<small>RM <?= number_format($ritem["stock_sprice"], 2) ?></small>
</button>
</div>
<?php } ?>
sl.php 文件正在运行并返回数据(如果我手动放置的话)。请注意,我为此按钮使用了 bootstrap 选项卡。
我怎么看不到...
你错了:
xmlhttp.open("GET", "sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity, true);
你不能在JavaScript中使用PHP...所以你错了:
sl.php?sdoc_no=<?= $sdoc_no ?>&sdoc_date=<?= $sdoc_date ?>&sale_code=" + sale_code + "&sale_quantity=" + sale_quantity
此 <?= $sdoc_no ?>
和 <?= $sdoc_date ?>
不是有效的 JS 代码...
您需要在 js 中将字符串参数用引号引起来:
变化:
sale(<?= $ritem['stock_code'] ?>, 1)
至:
sale('<?= $ritem['stock_code'] ?>', 1)
那么在将参数用作 url 参数之前,您应该对参数进行 uri 编码。