1

正常に動作している2つのファイルから別々に評価とコメントを取得する2つのjquery関数があります。

今、私は単一の ajax 呼び出しでそれを実行したいのですが、この方法で 2 つの関数をマージしようとしていますが、機能していません。

jquery

    function get_review(){
    $.ajax({ 
      type: "POST",
      url: '../review.php',                        
      data: {value1:value1, value2:value2, value3:value3},                        
      dataType: 'json',
      cache: false,              
      success: function(data)          
       {
        var x = data[0];
        var rating = (x-0.5)*2
        var y = (20 * rating)+40;
        $('#urating').css("backgroundPosition","0%"  +(y)+ "px");
        $('#comments').html(data);
       } 
     });
};

PHP

$find_data = "SELECT * FROM $tablename WHERE table_name='$table' AND product_id='$id' ORDER by id DESC";
$query = mysqli_query($connection, $find_data);

$find_data2 = "SELECT * FROM $tablename2 WHERE id='$id'";
$query2 = mysqli_query($connection, $find_data2);
$row2 = mysqli_fetch_assoc($query2);

header('Content-type: application/json');
echo json_encode($row2);
?> 

      <?php while($row = mysqli_fetch_assoc($query)):?>
      <div class="comment-container">
        <div class="user-info"><?php echo $row['user_name']; ?></div>
        <div class="comment"><p><?php echo $row['quick_comment']; ?></p></div>
      </div>
      <?php endwhile;?>

それを行う可能な方法を見て、提案してください。

ありがとう。

4

1 に答える 1

1

応答全体を JSON オブジェクトにエンコードしてみてください! 何かのようなもの:

$response = array(
    'success' => true,
    'object'  => $yourobject_or_array,
    'html'    => '<b>Bla bla</b>'
);
echo json_encode($response);
die();

JS:

function(response) {
    var res = false;
    try {
        res = jQuery.parseJSON(response);
    } catch(e) {}
    if (res && res.success) {
        // Use res.object and res.html here
    }
}
于 2012-10-23T10:41:06.623 に答える