douhuan1380
2019-04-12 17:16
浏览 78
已采纳

如何将include绑定到php [duplicate]中的关联数组

This question already has an answer here:

I have 2 echo's from a php script that are sent as json to the ajax call. These 2 echos will be outputted in 2 different divs. For those 2 echo's , I created an array like below:

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

Instead of these echo's, I now want to include 2 files (which will be the echos). Sow can I do that?

So what I want is something like this:

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

How can I do this?

By the way, this is my 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
</div>
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • doulingna9420 2019-04-12 17:26
    最佳回答

    In your include files, you will need to return the HTML - or use output buffering to capture it and then return the contents. Using return ...

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

    So the contents of success.php would be something like

    return "<sometag></sometag>";
    

    This makes sure that the value is passed back and inserted in the correct place and will give something like

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

    If you just echo the HTML,

    echo "<sometag></sometag>";
    

    you may end up with something like

    <sometag></sometag>{"one":1,"two":"a"}
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题