【发布时间】:2020-07-20 10:47:14
【问题描述】:
经过大量尝试,我需要帮助。单击事件后,我检查数据库中存在的数据并使用 jscript 弹出确认框。
当我点击取消时如何让它工作,它没有显示我在confirm.php上设置的任何值?
用 OK 确认并取消
jscript 代码:
if($row_count2 > 0)
{
if ($row2["Status"] == "REJECTED")
{
<script type="text/javascript">
if (!confirm('Lot No has been REJECTED before.. Double confirm to add the Lot No!!')) {
var option = "NO";
$.ajax({
type: "POST",
url: "confirm.php",
data: "value="+option,
success: function (data) {
alert(data);
}
});
}
</script>
}
}
$ll = $_SESSION['Confirm'];
echo "<script type='text/javascript'>alert('$ll');</script>";
if ($row_count2 < 1 || ($_SESSION['Confirm'] = "YES"))
{
//my insert query is here...
}
这是在confirm.php里面:
<?php
session_start();
$xx = $_REQUEST["value"];
$_SESSION['Confirm'] = $xx;
echo "<script type='text/javascript'>alert('$xx');</script>";
?>
我希望$_SESSION['Confirm'] 的值为 NO
默认$_SESSION['Confirm']值为YES
alert(data) 显示 $xx 为 NO 但当我在 if 条件下对 $_SESSION['Confirm'] 值发出警报时
在我的插入查询之前$_SESSION['Confirm'] 值仍然是 YES
【问题讨论】:
-
这里的代码:
$ll = $_SESSION['Confirm']; echo "<script type='text/javascript'>alert('$ll');</script>";看起来它是在您的 AJAX 代码之前执行的。一旦前面的 PHP 代码行(将 AJAX 代码输出到浏览器的那些行)运行,它将在服务器上执行。在收集 Session 值之前,您似乎没有给用户任何时间来响应确认对话框。不要忘记 所有 PHP 代码将在任何 JavaScript 代码传送到浏览器之前在服务器上执行。
标签: javascript php ajax post confirm