0

PHP から ajax レスポンスを取得しています。レスポンスをデコードして、3 つの URL を取得したい

コードは HTML/JS です

<script type="text/javascript">
 $(document).ready(function() {
$(".goButton").click(function() {
   var dir =  $(this).attr("id");

   var imId = $(".theImage").attr("id");
   $.ajax({
      url: "viewnew.php",
      data: {
         current_image: imId,
         direction    : dir
      },
      success: function(ret) {
          alert(ret);
         $(".theImage").attr("src", ret);


         if ('prev' == dir) {
            imId ++;
         } else {
            imId --;
         }
         $("#theImage").attr("id", imId);
      }
   });

});
});
</script>


<body>
<img id="416" class="theImage" src="" />
  <a href="#null" class="goButton" id="next">Next</a>
</body>

そしてPHPファイルは

$query = 'SELECT * FROM picture ORDER BY RANDOM() LIMIT 2';
$result = mysql_query($query);
$rec = mysql_fetch_array( $result, MYSQL_ASSOC );

echo $rec['pic_location'];

次のボタンをクリックすると、これらの2つの画像が全画面表示されることを示すために、次の3つの画像も取得したいと思います。1 つはフル サイズで表示され、もう 1 つはサムネイルとして表示されます。Ajax からの応答をデコードするにはどうすればよいですか?

4

2 に答える 2

1
 $(document).ready(function() {
$(".goButton").click(function() {
   var dir =  $(this).attr("id");

   var imId = $(".theImage").attr("id");
   $.ajax({
      url: "viewnew.php",
      data: {
         current_image: imId,
         direction    : dir
      },
      success: function(ret) {
          var arr = eval(ret);
         alert("first: " + arr[0] + ", second: " + arr[1]);


         if ('prev' == dir) {
            imId ++;
         } else {
            imId --;
         }
         $("#theImage").attr("id", imId);
      }
   });

});
});

テストされていませんが、動作するはずです。(このコードは、PHP がjson_encode()'ed 配列を返すことを前提としています)

于 2012-06-07T18:45:14.903 に答える
0

PHPからjavascriptにデータを渡すjson_encodeには、出力で関数を使用してから、jsコールバックで処理します。

echo json_encode($rec['pic_location']);

于 2012-06-07T16:22:34.593 に答える