我使用这些代码将我的联系人信息保存到MySQL数据库中,并应用JQuery确认功能确认数据提交,但当确认对话框打开PHP脚本无法停止,或Php绕过JQuery确认代码并将数据提交到数据库时,任何关于此问题的想法。
<?php
//Database connection.
include'connect.php';
if(isset($_POST['name'])&&isset($_POST['email'])&&isset($_POST['contact'])){
$name = $_POST['name'];
$email = $_POST['email'];
$contact = $_POST['contact'];
if(empty($name)&&empty($email)&&empty($contact)){
echo'
<script>
$(document).ready(function(){
alert("Please fill all fields.");
});
</script>
';
}else{
if($sql = mysql_query("INSERT INTO contact_list VALUES ('', '".mysql_real_escape_string($name)."', '".mysql_real_escape_string($email)."', '".mysql_real_escape_string($contact)."')")){
echo'
<script>
$(document).ready(function(){
confirm("Are you sure to Saved Contact?");
});
</script>
';
}else{
echo'
<script>
$(document).ready(function(){
alert("Something is wrong, Please check");
});
</script>
';
}
}
}
?>
<html>
<form action="#" method="POST">
Full name:<input type="text" name="name">
Email:<input type="text" name="email">
Contact:<input type="text" name="contact">
</form>
</html>发布于 2013-05-23 18:53:34
PHP由服务器执行,而javascript由客户端执行。并且您希望服务器“等待”或“停止执行”,直到客户端执行某些js代码。这是不可能的。
您必须将PHP代码拆分为两个不同的PHP脚本:一个用于确认,另一个用于保存数据。例如,使用伪代码:
confirm.php
Hey, are you sure you want to save the data?
<a href="save.php">Yes, I'm sure</a>save.php
INSERT INTO 'blablabla' VALUES bla bla bla bla bla当然,你并不一定要把它分成两个脚本。
但是这个想法是你必须将这两个动作分开,因为你不能用PHP同时做确认和保存。
还有更多的选项:
https://stackoverflow.com/questions/16711874
复制相似问题