2015-09-13 57 views
1

我使用Ajax和磚石特定值充分利用Ajax響應

Ajax代碼:這AJAX是用來從

$.ajax({ 
     type: "get", 
     url: "some.php", 
     dataType: "text",     
     success: function(data) { 
     if (data && data.length > 0) {  
      $items = $(data); 
      $grid.append($items) 
      .masonry('appended', $items); 
      $(this).find(".loading").hide(); 
     } 
     } 

腓部分得到的數據:這只是一小或足夠的部分PHP文件,瞭解

$b= "sv"; 
echo "asjdgsajd"; 
echo "a"; 
echo $b; 
現在

我正在正確地讓一切問題,但我想用說的$ b值用於設置屬性值以及其它值的內容,但我怎麼能分手特別是獲得$ b的價值? 三江源

+1

你能發佈你的AJAX響應的完整示例嗎?爲什麼不使用JSON呢? – Machavity

+0

sv asjdgsajd a 使用break之後每個echo @Machavity –

+1

使用JSON會使這更容易。是否有你使用dataType的原因:「文本」 –

回答

2

嘗試使用JSON和改變你的PHP發送JSON響應方式,您可以發送更多的內容和訪問他們的客戶端,你需要它。

php腳本:

$outArr=array("b"=>"sv","content1"=>"asjdgsajd","content2"=>"a"); 
$jsonResponse=json_encode($outArr); 
echo $jsonResponse; 

在AJAX功能,您可以訪問您的數據是這樣的:

$.ajax({ 
    type: "get", 
    url: "some.php", 
    dataType: "text",     
    success: function(data) { 
    if (data && data.length > 0) {  
     data=$.parseJSON(data); //parse response string 
     b=data.b;//value of b 
     content1=data.content1;//value of content1 
     $("#exampleDiv").attr("id",b).html(content1); //set the attribute and content here for an example div 
    } 
    } 
}) 
+0

你可以在上面的ajax代碼中進行建議編輯@Amit –

2

更改dataTypejson

$.ajax({ 
     type: "get", 
     url: "some.php", 
     dataType: "json",     
     success: function(data) { 
     //data will hold an object with your response data, no need to parse 
     console.log('Do whatever you want with ' + data.b + '.'); 
     } 

some.php請執行以下操作:

$response =array(
    'b' => "sv", 
    'a' => "asjdgsajd", 
    'c' => "a" 
); 
echo json_encode($response); 
echo $b; 

關聯數組的項目將最終成爲一個JavaScript對象的屬性,你可以在你的success回調(或done功能使用的success已棄用)。

+0

if我不會從文本中更改數據類型,因爲我無法將整個代碼轉換爲json數據,因爲實際文件中有很多數據呢? @ some-non-descript-user –

+0

那麼你必須讓「b」以某種方式辨別。你可以把它放在特殊的禁忌或其他東西,然後做一些凌亂的正則表達式工作,然後將其從文本流中拉出。但我真的建議,而不是以一種乾淨的方式去做。 –

+1

也許您可以將需要獲取文本的請求與您需要清除值的請求分開,並使用不同的Ajax調用來獲取它們。 –