使用Ajax更改表单,在会话中存储元素

时间:2014-11-02 15:22:01

标签: javascript php ajax

我喜欢过滤数据集,但是我有很多不同的过滤器,我无法在我用来选择它们的子表单中一次加载它们。所以我认为我使用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">&lt;&lt;&lt;</button></td>
                <th>Filter</th>
                <td rowspan="11"><button onclick="javascript: plusMinTen(10);" type="button">&gt;&gt;&gt;</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);
}

但很明显,如果有人解释,它可以反过来工作吗?

0 个答案:

没有答案