1

通常,当我想在 php 文件中创建新内容并在我的站点中的某个位置实现它时,我会执行以下操作(JS 和 PHP):

    case 'someCasename':
    ...
    include_once 'file.php';
    break;

...
success: function(data){
    $("#idSelector").html(data);
}

并且新内容显示在所选元素处。

但我很好奇是否可以同时发送多个 php 文件。不确定这是否真的有必要,而且我还没有遇到过需要这样做的地方,但我想到了它并想问。最后的代码很可能非常非常错误,但我只想展示我的意思:

    case 'someCasename':
...
$phpArray = array("file1" => include_once 'file1.php', "file2" => include_once 'file2.php', "file3" => include_once 'file3.php'):
echo $phpArray;
break;

...
success: function(data){
    $("#idSelector").html(data.file1);
    $("#idSelector").html(data.file2);
    $("#idSelector").html(data.file3);
}

这样的事情甚至可能吗?你不能 json_encode php 文件可以吗?

4

1 回答 1

1

如果我理解正确,您包含的 php 文件会回显出您想在 ajax 调用的成功函数中使用的内容。

您可以做的是遍历所有包含并使用输出缓冲来捕获数组中这些文件的输出。

就像是:

case 'someCasename':
  ...
  $results = array();
  while (files_to_include)
  {
    ob_start;    // start output buffering
    include_once "your_file";
    $results[] = ob_get_clean();    // get the contents of the output buffer
  }
  echo json_encode($results);    // send all collected output as json to be used on the js side
  break;

尽管这可行,但使用在您的包含中返回值的函数当然会更好。

于 2012-12-03T16:12:14.947 回答