我在我的网站上有一个表单,用户可以使用该表单按选定的列排序数据表。本质上,它是与此类似:通过点击表标题进行排序
<form action="" method="post">
<select name="orderby">
<option value="col_1">Column 1</option>
<option value="col_2">Column 2</option>
<option value="col_3">Column 3</option>
</select>
<input type="submit" value="Order By"/>
</form>
它运作良好,但我想更新这是如何通过允许用户在表列标题单击代替完成。我尝试这样做的方式是将onclick事件添加到我的表格标题中,并使用javascript将相同的数组发回页面。换句话说,当列2被点击时,Array([orderby] => col_2)将保持完全相同。这将保留我所有的其他代码。下面是我对表头进行了更改:
<table>
<tr>
<th onclick="post('col_1')">Column 1</th>
<th onclick="post('col_2')">Column 2</th>
<th onclick="post('col_3')">Column 3</th>
</tr>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td>B</td>
<td>C</td>
<td>A</td>
</tr>
</table>
,这里是我写的JavaScript:
<script>
function post(clm) {
$.post('mypage.php',{orderby:clm});
}
</script>
这是行不通的。任何人都可以告诉我需要改变以使其起作用吗?现在,如果我点击表头,$ _POST数组仍然是空的。 (mypage.php是调用该函数的同一页面,我也在单引号之间尝试了它,就像使用form action属性一样,但它也没有以这种方式工作)。谢谢。
你做一个新的呼叫mypage.php - 这将不会影响呈现一个你必须在屏幕上。要么显示返回的ajax数据,要么代替ajax提交实际的表单,这会导致页面刷新 – Steve 2014-09-13 14:23:39
好点。从我所见过的AJAX来看,提交数据片段并不需要重新加载整个页面。但是,我需要整个页面重新加载。有一个简单的行或两个AJAX将做到这一点? – user3865463 2014-09-13 14:37:32
Ajax将要求你重新编写你的php,当通过ajax请求时输出表格数据,我建议一个更简单的解决方案 - 你是否也有页面上的下拉表单,或者你是否删除了? – Steve 2014-09-13 14:40:44