使用json从ajax请求调用的文件中获取值

时间:2013-10-26 17:47:59

标签: javascript php ajax post

此文件由ajax请求调用。结果来到这里我想把它放在两个不同的调用函数中。

<?php


//Some processing gives $text 
$s=nl2br($text);

        $data['x'] = $p;
        $data['y'] = $q;

//Start from here

    echo "<b>Positive count : $x with $p % </b>";  echo "</br>";
    echo "<b>Negative count  : $y with $q % </b>"; echo "</br>";
    echo "</br>";
    echo "Page content : ";
    echo "</br>";
    echo "</br>";
    echo $s;
//End. This content should be place in <div1>. Want to send this as a json string

//Start from here
    echo "First 5 post";
    $result = mysqli_query($con,"select post from facebook_posts where p_id >  (select MAX(p_id) - 5 from facebook_posts)");
    while ($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      echo $row['post'];
      echo '<br/>';
    }
//End. This content should be placed in <div2> Want to send this as a json string

如果有单个变量,那么我们可以使用以下方法轻松完成:

$resultArray = array("resultOne" => $result1,"resultTwo" => $result2);
echo json_encode($resultArray);

在接收端:

document.getElementById("myFirstDiv").innerHTML=xmlhttp.responseText.resultOne;
document.getElementById("mySecondDiv").innerHTML=xmlhttp.responseText.resultTwo;

但是如何将复杂的结果置于json变量之上?

1 个答案:

答案 0 :(得分:1)

您可以在PHP中使用output buffering

ob_start();
// Generate content for div 1...
$div1 = ob_get_clean();

ob_start();
// Generate content for div 2...
$div2 = ob_get_clean();

$result = array("div1" => $div1, "div2" => $div2);
echo json_encode($result);