Javascript 如何在ajax中获取PHP数组作为responseText,以便稍后从ajax将其传递给特定的div
我有一张一般信息表。当我单击submit时,所有值都是使用javascript获得的,并使用ajax将其发送到PHP函数。 PHP函数验证表单并返回 将表单错误作为数组 或成功消息 我想在ajax端获取PHP生成的数组,并将其传递给表单,以显示各个表单字段上的错误 我已经成功地在PHP中生成了错误数组。 print\r($arrayname)将所有值显示为一个数组。 但我不想显示,而是想将其传递给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代码中,
在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;
}
}
}