我正在尝试创建一个同意书,让用户输入他们的名字。当按下提交按钮时,我将他们的文本输入发布到一个PHP文件,该文件将他们的名字邮寄给我(我知道有更简单的方法可以做到这一点)。然而,这种形式不一致;有时它记录用户的名字,有时则不记录。在我的电脑上它通常总是有效,所以我无法解决问题。
这是代码:
//submitlink is a dummy link
$("#submitlink").click(function(event){
event.preventDefault();
var name1val = $("#name1").val();
if (!(name1val == '')){
$.post("mail.php",
{ name : name1val, time : curr_time}
);
//agree is a <form id="agree" action="nextpage.php">
$("#agree").submit();
else{
//display error message
}
}
和mail.php是:
<?php
$name = $_POST['name'];
$text = $name . " has begun the survey at " . date("F j, Y, g:i a");
$result = mail('myemail', 'User has begun survey', $text);
?>
你能想到为什么这段代码不能工作的原因吗?如何在用户单击提交按钮后可靠地发布数据?
答案 0 :(得分:1)
在确认AJAX调用成功之前,您正在提交第二个表单$("#agree").submit();
。有时这会起作用;经常不会。将submit
调用放入成功处理程序:
$.post("mail.php",
{ name : name1val, time : curr_time},
function(){
$("#agree").submit();
}
);
这将在AJAX请求完成后调用代码。