说明
由于@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