0

设想:

我有一个confirmation pop up message地方,当我单击OK按钮时,它将继续或保存我创建的条目-这没关系..但是当我单击CANCEL按钮时,它将返回到页面booking_content.php-这个没关系...

问题:

现在的问题是CANCEL,返回页面很好,但its still saving the entry which is when I pressed the取消it will not save and will return back to the page ofbooking_content.PHP`。

问题:

有没有办法*terminate the program*当我点击CANCEL?我也试过了,EXIT;但它不起作用....

这是我的 Javascript 和 PHP 代码:

// other if else..

else if($network == "Mass and Mobile" && $row[fldTotalDuration]  == "08:00:00"  && $duration >= "0 s")
{?><?php
if(sizeof($bldg) == 1)
{
echo "<script type='text/javascript'>\n";
echo "alert('$bldg[$i] station is already full.');\n";
echo "window.location='booking_content.php'";
echo "</script>";
}

else
{ ?>
<script>
var r=confirm('$bldg[$i] station is already full. Do you want to save the other networks?')
if (r==true) {
alert("OKAY BUTTON");
} else {
window.location='booking_content.php';

}
</script>
<?php
}

}

//after all the if else...

else
{
  // heres my code for saving the data....

}

先感谢您...

4

1 回答 1

1

您确实意识到 PHP 在服务器上执行以生成一个大字符串,然后将其作为包含 javascript 的 HTML 文件发送到浏览器,不是吗?

因此,代码执行如下:

  1. 用户向“booking_content.php”发出请求。

  2. Web 服务器执行 PHP 以处理“booking_content.php”脚本。

  3. 执行“booking_content.php”脚本,包括else包含用于保存数据的代码的部分。

  4. 保存数据并生成 HTML 字符串并将其发送给用户。

  5. 浏览器接收 HTML 并执行提示用户确认对话框的 javascript。

你看到这里的问题了吗?在向用户显示确认对话框之前很久就保存了数据。

解决此问题的方法是在用户向“booking_content.php”发出请求之前弹出确认对话框。它通常作为onsubmit提交数据的表单上的一个事件来完成,或者如果数据是通过 ajax 提交的,则手动调用对话框函数。

或者,如果您需要在弹出对话框之前检查服务器中的某些数据或状态,您可以有一个单独的中间页面来询问确认。例如,创建一个“booking_confirmation.php”,它从表单中获取数据,然后请求确认,然后在用户单击“确定”时重定向到“booking_content.php”(记住包含发布数据或查询参数)。

于 2013-09-30T06:19:32.807 回答