0

PHPデータからURLを抽出する必要がありますが、どうすればこれを実現できますか?

PHP

$query = 'SELECT * FROM picture LIMIT 3';
$result = mysql_query($query);


while ($rec = mysql_fetch_array($result,  MYSQL_ASSOC)) {
    $url.=$rec['pic_location'].";";
}

echo json_encode($url);

アヤックス

 <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){
          console.log(ret);
          var arr = ret;
          alert("first: " + arr[0] + ", second: " + arr[1]);
          alert(arr[0]);
          $(".theImage").attr("src", +arr[0]);
          if ('prev' == dir) {
        imId ++;
     } else {
        imId --;
     }
     $("#theImage").attr("id", imId);
          }
       });

    });
    });
    </script>

アラートメッセージは、HTを印刷するだけでは機能しません(これらはhttp:// ...だと思います)

4

2 に答える 2

1

JSON として解析されない文字列を返しています。dataType: "json"ajax設定に追加するだけです。

そして、あなたはそれをあなたのjavascriptの配列として読んでいるので、次のように返す必要があります:

while ($rec = mysql_fetch_array($result,  MYSQL_ASSOC)) {
    $url[] = $rec['pic_location'];
}
于 2012-06-08T08:32:17.147 に答える
1

PHP で文字列を送信し、javascript での応答として配列を期待しています。PHPを次のように変更します

while ($rec = mysql_fetch_array($result,  MYSQL_ASSOC)) {
    $url[] = $rec['pic_location'];
}

そしてjavascriptに

$.ajax({
      url: "viewnew.php",
      dataType: "JSON",
      data: {
         current_image: imId,
         direction    : dir
      },
      success: function(ret){
          console.log(ret[0]);
          var arr = ret;
          alert(arr);  
          alert("first: " + arr[0] + ", second: " + arr[1]);    // THIS IS NOT WORKING!!!!
          if ('prev' == dir) {
            imId ++;
         } else {
            imId --;
         }
         $("#theImage").attr("id", imId);
      }
   });
于 2012-06-08T08:34:11.757 に答える