2012-06-07 43 views
0

我正在從PHP獲取ajax響應。我想響應進行解碼,並獲得3 URL的需要將來自php的AJAX響應解碼爲2個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']; 

我想在未來3圖像也這樣我就可以顯示當點擊下一個按鈕時這兩個圖像將全屏顯示。一個將顯示爲全尺寸,另一個顯示爲縮略圖。我如何解碼來自Ajax的響應?

+3

有一件事與你的問題無關,不使用MySql的Random函數。如果你有很多行,並且查詢經常被使用,你的服務器就會關閉(相信我,我曾犯過這個錯誤......)。使用Php來選擇隨機數,然後使查詢不起作用 –

+0

使用JSON從您的ajax腳本傳遞多個值.. –

+0

@NicolásTorres - 謝謝:) – Yahoo

回答

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數組)

+0

未捕獲的SyntaxError:意外的標記標記所在的位置。 – Yahoo

+0

你確定你用''正確關閉了腳本嗎? – 11684

+0

我點擊下一個按鈕後會發生這種情況。 – Yahoo

0

要將數據從PHP傳遞到JavaScript,請在​​輸出中使用json_encode函數,然後使用js回調進行處理。

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

+0

那我怎麼解碼呢?你可以把它作爲一個警告消息嗎? – Yahoo

+1

你不需要解碼它,JSON是javascript – ilanco

+0

'eval(json_variable);' – 11684