我正在创建一个AJAX + PHP提交表单,例如用途。为此,我需要将Ajax,PHP和index.html文件写入输入。问题是,当我提交时我无法重定向页面,所以我创建了这个hack。 (因为页面重定向首先从PHP脚本获得权限)否则显示错误。
function submit_form(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
if(xmlhttp.responseText.trim() == 'success'){
location.href = '/success';
}
//
var e = doc.querySelector('.form-error').innerHTML = xmlhttp.responseText;
}
}
这是我的PHP。
<?php
echo "/success";
if($_GET){
}else{
echo "error, no value found";
}
正如您所看到的,这允许我重定向页面,因为javascript将读取"/success"
并重定向文档,但有一个问题是,我不喜欢使用echo,因为页面实际上显示重定向前的“成功”。我不希望它向页面显示任何内容。
答案 0 :(得分:2)
将您的echo
语句更改为return json_encode()
,然后在您的JS代码中,您可以使用JSON.parse()
解析它;
答案 1 :(得分:0)
在PHP中删除此行的斜杠:echo "/success";
在你的java脚本代码中,在打印错误之前添加一个else语句:
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
if(xmlhttp.responseText.trim() == 'success') {
location.href = '/success';
}
else {
var e = doc.querySelector('.form-error').innerHTML = xmlhttp.responseText;
}
}
}