gpt4 book ai didi

javascript - 在 Jscript 弹出窗口中显示 PHP 结果

转载 作者:行者123 更新时间:2023-11-29 08:08:45 26 4
gpt4 key购买 nike

我希望用户能够通过输入一些详细信息来检查数据库中的号码。该数字随后将显示在 JavaScript 警报中。

我的索引页面包含用户输入,如下所示:

<script type="text/javascript">
function check()
{
$.ajax({
url: "checkpna.php",
type: "POST"})
}

function show_alert()
{
alert(check())
}


</script>


<form action="#" method="get" class="formubuntu" onSubmit="return submitForm()">
<p>Check Pallet PNA Number &nbsp;<input name="lpn" id="lpn_0" type="text" style="border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-left-radius: 4px 4px; margin-right: auto; margin-left: auto;" value="Pallet LPN">
&nbsp;<input name="submit" type="submit" value="Submit" class="art-button" onclick="show_alert()"></p>
</form>

和 checkpna.php 检查数据库中的具体细节:

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if($_GET['submit'] == "Submit")
{
$lpn = $_GET["lpn"];

}

$values = array();

$query = "select serial_number from t_container where container_number = '".$lpn."';";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo stripslashes($row['serial_number']);
}
}

else {
echo "NO RESULTS";
}

?>

但是我收到一个弹出窗口,显示未定义。我做错了什么??

最佳答案

函数 check 不返回任何内容(因此未定义)。

如果你返回$.ajax(),它确实返回一些东西,但是什么?它返回一个Promise。 promise 是 future 值(value)的容器,而我们还没有这种值(value)。我们还没有该值的原因是请求尚未完成,它才刚刚开始。

您可以将代码更改为:

function check() {
return $.ajax(/* .. */);
}
function show_alert() {
check().done(function (result) {
alert(result);
});
}
<小时/>

您的 PHP 代码存在一些严重问题。它有效,但不安全。阅读 SQL 注入(inject)并查看验证您的输入(您检查 submit,但不检查 lpn)。

关于javascript - 在 Jscript 弹出窗口中显示 PHP 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com