如何处理php echo'ajax中的ed消息

how to handle php echo'ed message in ajax.

本文关键字:ajax 中的 消息 ed echo 何处理 处理 php      更新时间:2024-01-03

例如,我正在创建一个AJAX+PHP提交表单。为此,我需要Ajax、PHP和index.html文件来写入输入。问题是,当我提交时,我没有办法重定向页面,所以我创建了这个黑客。(由于页面重定向首先从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,因为页面在重定向之前实际上显示"成功"。我不希望它在页面上显示任何内容。

echo语句更改为return json_encode(),然后在JS代码中,可以使用JSON.parse()进行解析;

在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;
        }
    }
}