我在调用ajax命令时遇到问题。所以问题是在ajax调用了php页面之后(以及在数据库中插入数据之后)... ajax调用的成功应该将页面重定向到某个地方别的....这是代码:
$.ajax({
type: "POST",
dataType: "json",
url: "insertInfo.php",
timeout: 3000,
data: "name=" + myName + "&email=" + myEmail +
"&birthdate=" + myBirthdate + "&nickname=" +
myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" +
mySloganColor + "&slogantext=" + mySloganText,
success: function(data)
{
if(data.operation=="completed")
{
window.location.href = "thank_you.php";
}
}
});
现在,当我提出时,奇怪的事情发生了:
alert('test')
在调用ajax之前!..如果我放了它,当然会出现消息框,ajax工作正常,连接到数据库并重定向页面。
如果我拿走警报框,没有任何反应,数据库不会被修改,也不会发生重定向。
我不明白问题出在哪里......我是否必须暂停ajax电话?
为了每一个理智的解释,你都会嗤之以鼻。)
if($('。info-user-form')。valid()) {
var myShirtColor = $('input[name="shirt"]').val();
var mySloganText = $('input[name="shirtText"]').val();
var mySloganColor = $('input[name="slogan"]').val();
var myName = $('input#name').val();
var myEmail = $('input#email').val();
var myBirthdate = $('input#birthdate').val();
var myNickName = $('input#nickname').val();
$.ajax({
type: "POST",
dataType: "json",
url: "insertInfo.php",
timeout: 3000,
data: "name=" + myName + "&email=" + myEmail + "&birthdate=" + myBirthdate + "&nickname=" + myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" + mySloganColor + "&slogantext=" + mySloganText,
success: function(data){
if(data.operation=="completed")
{
window.location.href = "thank_you.php";
}
}
});
}
好的,所以这是在jquery的document.ready中... 所有这一切...只有一个案例中ajax调用之前警报箱的存在... 谢谢大家的回复,我会试着看看bugzilla,即使我不知道会发生什么......
还用萤火虫做了测试......
因此,在运行firebug时,jax会将数据保存在db中并重定向页面。 Witgh firebug close,只保存数据,无需重定向
在Chrome中甚至没有保存数据......
答案 0 :(得分:1)
var queryString = "name=" + myName + "&email=" + myEmail +
"&birthdate=" + myBirthdate + "&nickname=" +
myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" +
mySloganColor + "&slogantext=" + mySloganText"";
data : queryString
尝试添加此内容。
contentType: "application/json; charset=utf-8",
type:'GET',
使用$_GET
对于重定向,请在成功函数中添加此代码
var url = "thank_you.php";
$(location).attr('href',url);
它的工作
答案 1 :(得分:0)
检查错误控制台和网络日志,看看发生了什么。另一个可能的原因是你在初始化之前尝试从DOM中获取输入值等。如果是这种情况,您可以将代码放在$(document).ready事件中。希望这有帮助
答案 2 :(得分:0)
所以在搜索和各种测试之后我发现如果我把选项
async:false
在ajax调用中,
它完美运行(我将在firefox中测试,在chrome中完美运行..)..
任何人都明白为什么?...很高兴知道....谢谢
答案 3 :(得分:0)
您似乎正在验证表单。确保表单提交的监听器返回false