2014-02-08 33 views
-2

阿賈克斯單獨的數據我在做一個Ajax調用是這樣的:這些來自MySQL的

   function myCall() { 
       var request = $.ajax({ 
        url: "ajax.php", 
        type: "GET",   
        dataType: "html" 
       }); 

       request.done(function(data) { 
        $("image").attr('src',data); 


       }); 

       request.fail(function(jqXHR, textStatus) { 
        alert("Request failed: " + textStatus); 

       });   
      } 

這是我的ajax.php:

<?php 
$connection = mysql_connect ("", 
"", ""); 

mysql_select_db(""); 

// QUERY NEW ONE 
$myquery = "SELECT * FROM mytable ORDER BY rand() LIMIT 1"; 
$result = mysql_query($myquery); 
while($row = mysql_fetch_object($result)) 
{ 
$currentid = "$row->id"; 
$currentname = "$row->name"; 
$currenturl = "$row->url"; 
$currentimage = "$row->image"; 
echo $currenturl,$currentnam, $currenturl,$currentimage; 

} 

mysql_close($connection); 
?> 

從Ajax調用我的數據變量現在包含所有在一次變量:

($currenturl,$currentnam, $currenturl,$currentimage) 

我怎樣才能把它們分開,所以我可以做這樣的事情:

request.done(function(data) { 
       $("id").attr('src',data1); 
       $("name").attr('src',data2); 
       $("url").attr('src',data3); 
       $("image").attr('src',data4); 

      }); 
+1

使用JSON ......... –

+0

作爲初學者的關鍵詞像'json'對我來說沒有任何意義..也可以是一個serialkiller或一隻狗。無論如何,謝謝 –

回答

2

jQuery:

$.ajax({ 

    type:"POST", 
    url:"ajax.php", 
    dataType:"json", 
    success:function(response){ 

    var url = response['url']; 

    var name = response['name']; 

    var image = response['image']; 

    // Now do with the three variables 



    // $("id").attr('src',data1); 
    // $("name").attr('src',data2); 
    // $("url").attr('src',data3); 
    // $("image").attr('src',data4); 

    }, 
    error:function(response){ 

    alert("error occurred"); 
    } 

    }); 

從代碼:

echo $currenturl,$currentnam, $currenturl,$currentimage; 

替換下面的代碼上面的一行:

$array = array('url'=>$currenturl, 'name'=>$currentname, 'image'=>$currentimage); 

echo json_encode($array); 
+0

hm ajax.php返回正確的格式。但是index.html中的ajax調用不起作用:/ –

+0

你會得到什麼錯誤? –

+0

我的壞..nervermind :)現在一切正常。感謝一千次! –

1

代替字符串返回即使用JSON類型的陣列用於爲「JSON返回值

即代替

echo $currenturl,$currentnam, $currenturl,$currentimage; 

使用

echo json_encode array('current' => $currenturl,'currentnam' => $currentnam, 'currenturl' => $currenturl,'currentimage' => $currentimage); 

並且還寫 '的dataType' 'in ajax

+0

現在,我可以與之合作。我如何在ajax調用中訪問它們?像數據[1],數據[2] ..? –

+0

不,你可以用它的關鍵字訪問它,如data.currentnam,data.currenturl等等 –