如何在ajax中处理php echo n#39; ed消息。

时间:2015-02-18 02:10:11

标签: javascript php ajax

我正在创建一个AJAX + PHP提交表单,例如用途。为此,我需要将Ajax,PHP和index.html文件写入输入。问题是,当我提交时我无法重定向页面,所以我创建了这个hack。 (因为页面重定向首先从PHP脚本获得权限)否则显示错误。

AJAX

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,因为页面实际上显示重定向前的“成功”。我不希望它向页面显示任何内容。

2 个答案:

答案 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;
        }
    }
}