我已经使用ajax编写了一个表单,所以提交后页面不会刷新。在Chrome和Firefox中,它运行得很好,当我使用Internet Explorer时就会出现问题(到目前为止,我只检查了8,9)。在IE8,9上,我无法发送表单,点击提交按钮不会触发任何事件,这是应该的。这是我正在使用的代码,我想明确一点,由于我的老板要求,我已经在同一个文件中编写了PHP和AJAX代码
if($_POST['isRadial']){
if(($_POST['redialVal']) && ($_POST['waitVal'])&& ($_POST['userId']) ){
$redial = $_POST['redialVal'] ;
$wait = $_POST['waitVal'];
$userId = $_POST['userId'];
$error_message = "123Could Not Save Settings, Please Try Again.";
$success_message ="Settings Were Updated Successfully, Will Be Implemented In 10 Minutes";
$query = mysql_query("....");
$getAll = mysql_query("...");
if(mysql_num_rows($getAll)>0){
$query = mysql_query("...'");
}
if(!$query){
echo $error_message;
return false;
}
else
echo $success_message;
//Update pull_tables
file_put_contents("....);
}
else
echo "</br>An Error Occured.Please Save Settings Again123.</br>";
}
Ajax代码:
$(function(){
$('#submitRedialWait').click(function(){
var redial = $("#redialSettings").val();
var wait = $("#waitSettings").val();
//var userData = $("#ui").text();
var userData=<?php echo $IDuser; ?>;
$.ajax({
url: '' ,
type: 'POST',
data: {redialVal: redial , waitVal : wait, userId :userData, isRadial:"yes"},
success: function(result){
// $('#RedialWaitResults').text(result) ;
alert('settings have been saved.');
}
});
return false;
});
});
你知道我这个问题的原因是什么吗?(现有IE除外)
任何建议都是有益的,提前感谢
当我使用AjaxForm异步提交文件时,我发现了两件有趣的事情。
首先,为了让ajaxform跨浏览器(IE 7+、chrome、firefox)工作,你必须确保你使用的是ajaxform的提交方法,比如这样的方法:
$('form').ajaxForm({
success: ...,
error: ...
}).submit();
第二件事让我很惊讶。AjaxForm在任何地方都可以使用,包括IE 7和9,但在IE 8上却不起作用。原因是,我忘记了att-method=POST。所以,你必须确保你有这样的东西:
<form action="/action.php" method="POST">...
使用ajax时,ajax将在后台工作。您必须在ajax请求成功/错误时做您想做的事情,它本身不会做任何事情。
如果您只是想在成功后重新加载页面。只需致电
document.location.reload(true);
或任何您想要的。。。
或
使用setTimeOut
显示消息并在一段时间后重新加载窗口
setTimeout(function(){document.location.reload(true)},3000);
在代码中的alert('settings have been saved.');
之后。