Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ajax中获取PHP数组作为responseText,以便稍后从ajax将其传递给特定的div_Javascript_Php_Json_Ajax_Codeigniter - Fatal编程技术网

Javascript 如何在ajax中获取PHP数组作为responseText,以便稍后从ajax将其传递给特定的div

Javascript 如何在ajax中获取PHP数组作为responseText,以便稍后从ajax将其传递给特定的div,javascript,php,json,ajax,codeigniter,Javascript,Php,Json,Ajax,Codeigniter,我有一张一般信息表。当我单击submit时,所有值都是使用javascript获得的,并使用ajax将其发送到PHP函数。 PHP函数验证表单并返回 将表单错误作为数组 或成功消息 我想在ajax端获取PHP生成的数组,并将其传递给表单,以显示各个表单字段上的错误 我已经成功地在PHP中生成了错误数组。 print\r($arrayname)将所有值显示为一个数组。 但我不想显示,而是想将其传递给ajax,在div中检索数组,并处理该数组 ---------阿贾克斯------ 在php代码中,

我有一张一般信息表。当我单击submit时,所有值都是使用javascript获得的,并使用ajax将其发送到PHP函数。 PHP函数验证表单并返回 将表单错误作为数组 或成功消息

我想在ajax端获取PHP生成的数组,并将其传递给表单,以显示各个表单字段上的错误

我已经成功地在PHP中生成了错误数组。 print\r($arrayname)将所有值显示为一个数组。 但我不想显示,而是想将其传递给ajax,在div中检索数组,并处理该数组

---------阿贾克斯------


在php代码中,完成所有检查并填充响应数组后,只需执行一个简单的
echo
即可将数据返回到
ajax

php中的示例:
echo json_encode($status)


最好将此代码放在php代码中的
if
语句下,在完成所有检查并填充响应数组后,只需执行一个简单的
echo
即可将数据返回到
ajax

php中的示例:
echo json_encode($status)


放置此代码的最佳位置是在您的
if
语句下

在表单上打印错误消息

                <?php  
            if(!empty(validation_errors())) {echo 
                validation_errors();}
            ?>

在表单上打印错误消息

                <?php  
            if(!empty(validation_errors())) {echo 
                validation_errors();}
            ?>

一旦PHP脚本运行完毕,浏览器收到HTML响应的结尾,就结束了,您不能直接修改已发送的输出,使用更多的PHP。您可以使用AJAX获取数据并使用JS在客户端渲染,或者在服务器端渲染数据并使用JS注入结果

客户端呈现 为此,您只需要使用PHP脚本返回数据,然后循环返回数据,并将每个项目附加到JS中的div中。使用本机JS呈现东西有点尴尬,但这种方法将呈现保持在一个位置,而不是在后端使用HTML代码

服务器端 客户端
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var data=JSON.parse(xmlHttp.responseText);
document.getElementById('responseG').style.display=“block”;
如果(data.status='true'){
document.getElementById('responseG').className=“警报成功”;
document.getElementById('responseG').innerHTML=“已成功更新”

”; } 否则{ document.getElementById('responseG').className=“警惕危险”; 对于(var i=0;i; } } } }
服务器渲染 在这里,我们使用PHP在后端生成HTML字符串,通过AJAX将其发送回来,然后将其附加到客户端的div中。这里的缺点是将HTML模板与后端代码混合

服务器端
$data=array(
“title”=>$title,
“firstname”=>$firstname,
“middlename”=>$middlename,
“姓氏”=>$姓氏
);
$html='';
foreach($key=>$item形式的数据){
$html+=''.$item'

'; } echo json_编码(数组('html'=>$html));
客户端
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var data=JSON.parse(xmlHttp.responseText);
document.getElementById('responseG').style.display=“block”;
如果(data.status='true'){
document.getElementById('responseG').className=“警报成功”;
document.getElementById('responseG').innerHTML=“已成功更新”

”; } 否则{ document.getElementById('responseG').className=“警惕危险”; document.getElementById('responseG').innerHTML=data.html; } } }
一旦PHP脚本运行完毕,浏览器收到HTML响应的结尾,就结束了,您不能直接修改已发送的输出,使用更多的PHP。您可以使用AJAX获取数据并使用JS在客户端渲染,或者在服务器端渲染数据并使用JS注入结果

客户端呈现 为此,您只需要使用PHP脚本返回数据,然后循环返回数据,并将每个项目附加到JS中的div中。使用本机JS呈现东西有点尴尬,但这种方法将呈现保持在一个位置,而不是在后端使用HTML代码

服务器端 客户端
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var data=JSON.parse(xmlHttp.responseText);
document.getElementById('responseG').style.display=“block”;
如果(data.status='true'){
document.getElementById('responseG').className=“警报成功”;
document.getElementById('responseG').innerHTML=“已成功更新”

”; } 否则{ document.getElementById('responseG').className=“警惕危险”; 对于(var i=0;i; } } } }
服务器渲染 在这里,我们使用PHP在后端生成HTML字符串,通过AJAX将其发送回来,然后将其附加到客户端的div中。这里的缺点是将HTML模板与后端代码混合

服务器端
$data=array(
“title”=>$title,
“firstname”=>$firstname,
“middlename”=>$middlename,
“姓氏”=>$姓氏
);
$html='';
foreach($key=>$item形式的数据){
$html+=''.$item'

'; } echo json_编码(数组('html'=>$html));
客户端
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
var data=JSON.parse(xmlHttp.responseTe
                <?php  
            if(!empty(validation_errors())) {echo 
                validation_errors();}
            ?>
$data=array(
    'title'=>$title,
    'firstname'=>$firstname,
    'middlename'=>$middlename,
    'surname'=>$surname
);

echo json_encode($data);
xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState==4) {
      var data = JSON.parse(xmlHttp.responseText);
       document.getElementById('responseG').style.display="block";
             if(data.status=='true') {
                document.getElementById('responseG').className="alert alert-success";
                document.getElementById('responseG').innerHTML="<p>Successfully Updated</p>";
             }
          else {
            document.getElementById('responseG').className="alert alert-danger";
            for(var i = 0; i < data.length; i++){ 
                document.getElementById('responseG').innerHTML+= '<p>'+data[i]+'</p>;
            }
        }
    }
}
$data=array(
    'title'=>$title,
    'firstname'=>$firstname,
    'middlename'=>$middlename,
    'surname'=>$surname
);
$html = '';

foreach ($data as $key => $item) {
    $html += '<p>'.$item.'</p>';    
}

echo json_encode(array('html' => $html));
xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState==4) {
      var data = JSON.parse(xmlHttp.responseText);
       document.getElementById('responseG').style.display="block";
             if(data.status=='true') {
                document.getElementById('responseG').className="alert alert-success";
                document.getElementById('responseG').innerHTML="<p>Successfully Updated</p>";
             }
          else {
            document.getElementById('responseG').className="alert alert-danger";
            document.getElementById('responseG').innerHTML = data.html;
        }
    }
}