如何将包含绑定到PHP中的关联数组

时间:2019-04-12 17:16:48

标签: php json ajax include associative-array

我有一个来自php脚本的2个echo,它们作为json发送到ajax调用。这2个回声将在2个不同的div中输出。 对于这两个echo,我创建了一个如下数组:

 $result = [
    "one" => "this is echo 1",
    "two" => "this is echo 2"
];
echo json_encode($result);

现在,我要包括2个文件(将是这些回声),而不是这些回声。母猪我能做到吗?

所以我想要的是这样的:

$result = [
    "one" => include('success.php'),
    "two" => include('renderfiles.php')
];

我该怎么做?

顺便说一下,这是我的jquery ajax:

$.ajax({
url: "",
type: "post",
data:  new FormData(this),
dataType: 'json',
contentType: 'application/json',
    success: function(data) {
       $('.echo').html(data.one); // content ofinclude success.php should come here
   $('.table-content').html(data.two); // content of include renderfiles.php should come here

2 个答案:

答案 0 :(得分:1)

在包含文件中,您将需要return HTML-或使用output buffering捕获它,然后返回内容。使用return ...

$result = [
    "one" => include('success.php'),
    "two" => include('renderfiles.php')
];

因此success.php的内容将类似于

return "<sometag></sometag>";

这可以确保将值传回并插入正确的位置,并给出类似的信息

{"one":"<sometag><\/sometag>","two":...}

如果您只是echo HTML,则

echo "<sometag></sometag>";

您可能会得到类似

的信息
<sometag></sometag>{"one":1,"two":"a"}

答案 1 :(得分:0)

“ one” => include('success.php'),只会将文件的返回值放入数组的“ one”元素中。如果您没有从中返回任何内容,则它将为null。

如果需要输出,则需要使用输出缓冲:

ob_start();
require_once('success.php');
$var = ob_get_clean();

但是我建议您只发送要包含的文件的名称,然后可以使用php将这些包含的内容加载到一个部分中,或者使用ajax发送html内容

希望有帮助