使用php和jquery排序
我试图在用户单击表格标题时重新排序HTML表格。这是我所能做的,但仍然无效。使用php和jquery排序
在HTML:
// onClick on table header
var par='ASC';
sort(par);
来自:ajax.js
function sort(orderByType)
{
$.ajax({
url: "sort.php",
type: "get",
data: "orderby="+orderByType,
success: function(data){
alert(data);
$("t1").text(data);
}
});
}
sort.php
$con = mysql_connect("localhost","root","root");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$orderBy = $_GET['orderby'];
mysql_select_db("icrisis", $con);
$result = mysql_query("SELECT * FROM messages,user
where user_id = from_user
ORDER BY user_name".$orderBy);
while($row = mysql_fetch_array($result))
{
echo "<tbody><tr><td>"."•"."</td><td>".
$row["Time_Date"]."</td><td>".
$row["player_name"]."</td><td></td><td></td><tr><td></td><td colspan='4'>".
$row["msg_desc"]."</td></tr></tbody>";
}
mysql_close($con);
它没有看到$orderBy
。然后我想将新订单添加到我的页面 - 这怎么可能完成?
发送到函数排序的变量是动态的,即点击时是ASC还是DESC?
我不确定这是否是您的问题的原因,但我相信你错过了一个空间。
查询的最后一行是现在:
ORDER BY user_name".$orderBy);
但应该是:
ORDER BY user_name ".$orderBy);
非常感谢您的关注MrHus,skorpan和Daan 我无法使用tablesorter,因为我添加了2行ajax 至于我添加的空间,它的工作原理从来不是thoight,可能是现在我想要的问题更新jQuery的HTML表格的内容我怎么能这样做 – Sarah 2009-04-15 11:19:04
您应该尝试:tablesorter它用于排序表。而且你甚至不需要使用php这个解决方案只是jQuery。希望它有用。
要回复您对Daan's anwser的评论,您可以按照here所述更新ajax tablesorter。
虽然这是真的,但使用tablesorter插件进行排序对于较大的表几乎不可用。只是为了莎拉! – 2009-04-15 09:14:03
正如大安说你缺少的空间,这可能是原因,但我会加:
您应该检查mysql_query()调用的结果,因为目前您不知道这是否失败,这可能是您的问题的原因。例如:
$result = mysql_query('SELECT ...');
if (!$result) {
die(mysql_error());
}
while($row = mysql_fetch_array($result)) {
//etc.
还你真不该建基于字符串的SQL语句都来自于浏览器,因为这些是不可信任的,有人可能目前添加恶意SQL到您正在执行什么。见SQL Injection。
您可以首先验证字符串,这样会更安全,而且很容易,因为您只有两个可能的值,例如,
if (isset($_GET['orderby']) && $_GET['orderby'] == 'DESC') {
$orderBy = 'DESC';
} else {
$orderBy = 'ASC';
}
嗨,莎拉。请在提交问题时使用表单下方的预览,以确保在提交前格式正确。为了说明你输入代码的形式,使用四个前导空格。 – 2009-04-15 09:06:00
MrHus的答案是正确的,但我认为你做错了什么。你是否在字段名称和排序方向之间放置了一个空格,还是就像你在这里写的一样? – BYK 2009-04-15 09:19:08