【发布时间】:2016-05-25 02:27:54
【问题描述】:
我正在尝试将 PHP 数组发送到 Javascript。
到目前为止,我只是将 Json 中的单个数组发送到我的 javascrpt ajax;
到目前为止,PHP 部分就是这样工作的;
如果我的请求有误;
$data[0] = 'false';
$data[1] = 'Error message';
如果没有错误;
$data[0] = 'OK';
$data[1] = 'html content to display';
我想发送多维数组;
$data[0] = 'OK';
$data[1] = 'html content to display';
$data[1][0] = 'OK';
$data[1][1] = 'another html content to display';
传递请求的Javascript函数;
function load(action,container){
return new Promise(function (resolve, reject) {
//alert(container);
$.ajax({
url: '/ajax.php',
type: 'post',
dataType: 'json',
data: { 'query': 'true', 'action': action, 'container': container },
success: function (data, status) {
console.log(data[0] + ' : FOR ' + action);
if (data[0] === 'false') {
$("#errorBox").addClass('visible');
for (var i = 1; i < data.length; i++) {
$('#errMsg').append(data[i]+'<br>');
$('#console').prepend('<span class="consoleError">ERREUR : </span>' + data[i] + '<br>');
}
$("#errorBox").show();
}
else if (data[0] === 'OK') {
resolve(data);
$(document).ready(function () {
$('#console').prepend('<span class="consoleGood"> Statue: ' + data[0] + '</span> Requête: ' + action + ' Conteneur:' +container+ '<br>');
data.splice(0,1);
});
}
return;
},
error: function (xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
return;
}
}); // end ajax call
});//promise
};
在我使用的 PHP 部分;
$data[0]= 'OK';
$data[1]= 'some content';
$data[1][0]= 'some more content';
echo json_encode($data);
我可以得到数组第一级包含的所有数据,但第二级不能。
控制台日志显示:
"<div class="doc_css"><div class="doc_status">active</div><h1>Mon document</h1><p>Le corp de mon document</p><div class="doc_post_nfo">Originalement posté par 1 le 2016-02-13 15:25:35<div class="doc_edit">Modifier</div></div></div>"
length: 1
__proto__: Array[0]
那么我该怎么做才能得到数组的第二级呢?
【问题讨论】:
-
发布您的 Javascript 端代码,并在 JavaScript 中对数组执行
console.log()。 -
您不能将 PHP 数组发送到 javascript。我的意思是,这是两种不同的语言。您最好的选择是将 JSON 作为您使用 PHP 解析的响应提供给您的 javascript。当您使用 javascript 发送 Ajax 请求并使用 PHP 处理它时,通常会这样做。在那里,您可以将 PHP 数组转换为 json 表示形式并将其发送回响应中。
-
您需要阅读 AJAX 教程。并做一些谷歌搜索。将这个问题称为重复问题是一种激进的轻描淡写。
-
我用我实际使用的代码更新了代码。
-
这不是多维数组的工作方式。
$data[1][0]= 'some more content';将重写data[1]= 'some content'中的内容。将$data[1]视为一个盒子,可以存储一个值'some content'更多盒子,这将是另一个数组
标签: javascript php arrays multidimensional-array