使用Javascript/Ajax加载新页面
Loading a new page with Javascript/Ajax
我有一个Ajax脚本,它允许我在不刷新页面的情况下检查表单。但我想让它检查字段是否还没有完成,但如果所有字段都完成了,我想把用户发送到一个新页面。
我不知道我该怎么做。这是Ajax脚本:
function pass()
{
// Real Browsers (chrome)
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
//Store data
var email = document.getElementById('email').value;
var firstname = document.getElementById('firstname').value;
var surname = document.getElementById('surname').value;
var address1 = document.getElementById('address1').value;
var address2 = document.getElementById('address2').value;
var postcode = document.getElementById('postcode').value;
//Open POST location
xhr.open("POST","addUserSeminar.php");
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
//Make object to store all data
var obj = {email: email, firstname: firstname, surname: surname, address1: address1, address2: address2, postcode: postcode};
//Encode the data with JSON and send it to the server
xhr.send("data=" + JSON.stringify(obj));
//Check return state and change "myDiv"
xhr.onreadystatechange=function()
{
if (xhr.readyState==4)
{
document.getElementById("settingsDiv").innerHTML = xhr.responseText;
}
}
//Return false so form doesn't submit
return false;
}
它将数据发送到一个php文件,在那里我检查框是否已填充,如果未填充,我会向每个框发送一条类似"Name not found"的消息。但如果所有数据都发布了,那么我会在数据库中添加一条记录,然后返回true。
我怎么能在Ajax脚本中得到这个返回,这样我就可以测试它是否为真,如果是的话,可以转发到新页面。
谢谢你抽出时间。
从服务器返回表示它已完成的内容,并在if语句中使用xhr.responseText读取它。
if( xhr.responseText.indexOf("forward to next page") > -1 ){
//forward
} else {
//show error message
}
如果您使用JSON对象来返回错误和成功消息,效果会更好,因为您只需检查对象即可。
在onreadystatechanged中,readyState==4 if block。。。
if(xhr.responseText.indexOf("SUCCESS") >= 0) {
window.location.href = NEW_URI;
} else {
document.getElementById("settingsDiv").innerHTML = xhr.responseText;
}
让PHP脚本返回一个唯一的字符串,用空白字段表示SUCCESS vs FAILURE。
成功时从服务器端返回字符串"TRUE"
PHP代码
if($valid_inputs) { // all input fields are valid
echo "TRUE";
} else {
echo "FALSE";
}
客户端JS代码
if (xhr.readyState==4)
{
if (xhr.responseText.indexOf("TRUE") > -1) {
window.location = "redirecturl.php"; //redirect url
}
}
相关文章:
- 超链接单击以加载新页面并执行JavaScript
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 避免在打印后加载新页面,下一页应从上次打印页面的剩余部分打印 - 点阵打印机
- 在加载新页面时保持选项卡永久处于活动状态
- 更改 URL 并使用 AJAX 获取响应加载新页面的最佳方法是什么
- 在当前页面上动画和加载新页面
- 如何在每次单击链接以加载新页面时停止加载其他资产
- 如何让我的wordpress网站在同一页面中显示博客文章,而无需使用AngularJS加载新页面
- 在WordPress上加载新页面时重新加载标题
- JavaScript 中的函数在通过单击 href url 加载新页面时不会调用
- 获取已更改的下拉选择的值,然后加载新页面
- 验证以检查数据库中是否已存在用户名,而无需加载新页面
- 每次加载新页面时,在iOS webView中运行JS
- 使用javascript在短暂的暂停/延迟后加载新页面
- 使用Javascript/Ajax加载新页面
- Javascript知道何时加载新页面
- JQuery bPopup从弹出窗口中删除旧页面,并在其中加载新页面
- 当按键按下时,如何使用javascript加载新页面