我喜欢过滤数据集,但是我有很多不同的过滤器,我无法在我用来选择它们的子表单中一次加载它们。所以我认为我使用Ajax逐个加载,我的PHP脚本成功地生成了公式的第一部分。它看起来像这样:
<form action="select_filter.php" method="POST">
<div name="formin" id="formin">
<table border="1">
<tbody>
<tr>
<td rowspan="11"><button onclick="javascript: plusMinTen(0);" type="button"><<<</button></td>
<th>Filter</th>
<td rowspan="11"><button onclick="javascript: plusMinTen(10);" type="button">>>></button></td>
</tr>
<tr>
<td><input type="checkbox" onclick="javascript: this.checked ? takeOut(this.value) : takeIn(this.value) ;" id="filter" value="1" name="filter">Filterwert1</td>
</tr>
...
</tbody>
</table>
</div>
<input type="submit" value="Filter X">
然而导航不起作用。我没有看到我做错了什么,list.php在正常运行时做了工作:
<script>
$(function() {
function plusMinTen(from){
$.get(
"list.php"
{
from: from,
},
function(list){
$('#formin').html(list);
}
);
}
function takeIn(into){
alert("in"+into);
}
function takeOut(out){
alert("out"+out);
}
});
</script>
函数takeIn和takeOut应该临时添加或删除SESSSION数组的值,我很清楚如何做到这一点,但我需要先解决这个AJAX问题。我用另一件事警告测试我的JS是否正常工作,但是我注意到了一些奇怪的事情:
<td><input type="checkbox" onclick="javascript: this.checked ? alert('in'+this.value) : alert('out'+this.value) ;" id="filter" value="14" name="filter">value14</td>
当我选中框并在取消选中时取出值,但是这样看起来反之亦然。因为我沿着这条路线暂停了一些事情:
if(this.checked){
takeOut(this.value);
}else{
takeIn(this.value);
}
但很明显,如果有人解释,它可以反过来工作吗?