2014-03-14 30 views
0

我知道JSON可以幫助我通過將所有數據存儲在數組中來處理多個數據。但是其中一個數據是在循環中呢?請參見下面的代碼:如何使ajax從php接收多個數據,其中一個數據是循環的

$data1='<p>hehe</p>'; 
$data2='<h1>wawa</h1>'; 
$backarr=array($data1,$data2); 

echo json_encode($backarr); 

現在我有一個想成爲DATA3

$sql="SELECT username FROM users WHERE username != '$username'"; 
$result = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_array($result)) { 
    $names = $row['username']; 
    echo '<p>'.$names.'</p>'; 
} 

是否有可能做什麼?我希望ajax能夠接收所有這三個數據,如何處理data3?

回答

0

試試這個

$backarray = array(); 
$backarray['data1'] = '<p>hehe</p>'; 
$backarray['data2'] = '<h1>wawa</h1>'; 


$sql="SELECT username FROM users WHERE username != '$username'"; 
$result = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_array($result)) { 
    $names[] = $row['username']; 
} 

//Push $names array into $backarray 
$backarray['names'] = $names; 

var_dump(json_encode($backarray)); 

它將輸出類似數組中所有名稱的內容。

'{"data1":"<p>hehe<\/p>","data2":"<h1>wawa<\/h1>","names":["Name1","Name2","Name3","Name4","Name5","Name6"]}' 
+0

我已經嘗試了所有的答案,他們似乎工作,但我不知道如何將它們傳遞給ajax?謝謝。 – user2049259

+0

@ user2049259假設'responseObject'是你從ajax調用收到的響應對象,'responseObject.data1'會給你'data1','responseObject'.data2會給你'data2'' responseObject.names'會給你一個數組名稱,你可以通過循環使用像'responseObject.names [1]','responseObject.names [2]''... – LoneWOLFs

+0

@ user2049259您是否使用jQuery? – LoneWOLFs

2

這並不難真的:

$names = array(); 
while($row = mysql_fetch_array($result)) 
{ 
    array_push($names, "<p>" . $row['username'] . "</p>"); 
} 

echo json_encode($names); 
+0

謝謝,但其他兩個數據呢? data1和data2也存儲在$ names中? – user2049259

0

你可以在一個陣列結合所有,然後開始編碼。

$dataSet = array(); 
$data1='<p>hehe</p>'; 
$data2='<h1>wawa</h1>'; 
$dataSet[] = $backarr = array($data1,$data2); 


$sql="SELECT username FROM users WHERE username != '$username'"; 
$result = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_array($result)) { 
    $names[] = $row['username']; 
} 
$dataSet[] = $names; 

echo json_encode($dataSet); 

編輯::

這裏jQuery的東西:

jQuery.post('url/script.php',{fieldName : fieldValue},function(res){ 
    console.log(res); 
    var res = jQuery.parseJSON(res); 
    console.log(res); 
}); 

純AJAX:

<script type="application/javascript"> 
function loadJSON() 
{ 
    var data_file = "http://www.example.com/data.json"; 
    var http_request = new XMLHttpRequest(); 
    try{ 
     // Opera 8.0+, Firefox, Chrome, Safari 
     http_request = new XMLHttpRequest(); 
    }catch (e){ 
     // Internet Explorer Browsers 
     try{ 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     }catch (e) { 
     try{ 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     }catch (e){ 
      // Something went wrong 
      alert("Your browser broke!"); 
      return false; 
     } 
     } 
    } 
    http_request.onreadystatechange = function(){ 
     if (http_request.readyState == 4 ) 
     { 
     // Javascript function JSON.parse to parse JSON data 
     var jsonObj = JSON.parse(http_request.responseText); 

     // jsonObj variable now contains the data structure and can 
     // be accessed as jsonObj.name and jsonObj.country. 
     document.getElementById("Name").innerHTML = jsonObj.name; 
     document.getElementById("Country").innerHTML = jsonObj.country; 
     } 
    } 
    http_request.open("GET", data_file, true); 
    http_request.send(); 
} 
</script> 
+0

謝謝,但如何在ajax中接收數據? $('data1')。innerHTML = myownrequest2result [0]; $('data2')。innerHTML = myownrequest2result [1]; $('data3')。innerHTML = myownrequest2result [2]; \t \t \t \t 我希望[2]應該是data3 .. – user2049259

相關問題