說明
由於@tkone指出:你不應該通過JSON被髮送HTML數據,這不是它的目的。
這是可以做到的,但不應做
要麼你輸出所有的HTML,並做服務器頁面上的所有的處理,並返回它作爲HTML
像這樣
PHP (server_page.php)
//Connect
$link = mysql_connect($server, $user, $password);
//Select
mysql_select_db($db, $link);
//Query
$result = mysql_query($query);
$data = $_GET['some_data'];
//Loop
echo "<table id='$data'>";
while($row = mysql_fetch_array($result)){
echo "<tr>";
foreach($row as $key => $value){
echo "<td>$value</td>";
}
echo "</tr>";
}
echo "</table>";
//Cleanup
mysql_free_result($result);
mysql_close($link);
的Javascript
var data = {"some_data": "Foobar"};
$.get("server_page.php", data, function(response){
$("#output").html(response);
});
或者,你輸出爲JSON的信息,數據,然後可以在Javascript
處理像這樣
PHP(server_page。PHP)
//Connect
$link = mysql_connect($server, $user, $password);
//Select
mysql_select_db($db, $link);
//Query
$result = mysql_query($query);
$num_result = mysql_num_rows($result);
$data = array(
"mysql_data" => array(),
"num_result" = $num_result
);
//Loop
while($row = mysql_fetch_array($result)){
$data['mysql_data'][] = $row;
}
echo json_encode($data);
//Cleanup
mysql_free_result($result);
mysql_close($link);
的Javascript
$.getJSON("server_page.php", function(data){
alert("Number of rows returned from query: "+data.num_result);
});
但你不應該混合兩種不同的方法。你必須決定你在哪裏處理所有的邏輯,並在那裏傳遞你需要的所有數據。
解決方案
正如你指出的那樣,
"<tr class=\"{$id}\">lalalal</tr>"
是不正確的JSON。
應該
"<tr class='{$id}'>lalalal</tr>"
所有JSON具有共享相同的報價符號,即如果使用或' "" '
。
我建議你在服務器端做所有的邏輯。您可以隨時通過POST或GET發送您的Javascript中的一些數據。這兩種方式你知道。
你的JSON是什麼樣的? – 2011-12-31 02:11:43
@AymanSafadi:更新。 – 2011-12-31 02:12:06