php - 使用复选框 ajax 更改查询

标签 php javascript mysql ajax

我想知道如何在不刷新页面的情况下选择复选框中的值

<div class="da-form-row">
  <label>Filter</label>
  <div class="da-form-item">
    <ul class="da-form-list inline">
      <span class="formNote">
      <?= $_LANG[211]; ?>
      </span>
      <li>
        <input class="uniform" type="checkbox" name="individual" id="individual" value="0" />
        <label>
          <?= $_LANG[11]; ?>
        </label>
      </li>
      <li>
        <input class="uniform" type="checkbox" name="individual" id="individual" value="1" />
        <label>
          <?= $_LANG[12]; ?>
        </label>
      </li>
      <li>
        <input class="uniform" type="checkbox" name="individual" id="individual" value="2" />
        <label>
          <?= $_LANG[13]; ?>
        </label>
      </li>
      <li>
        <input class="uniform" type="checkbox" name="individual" id="individual" value="3" />
        <label>
          <?= $_LANG[14]; ?>
        </label>
      </li>
    </ul>
  </div>
</div>
<div class="da-form-row">
  <label>
    <?= $_LANG[134];?>
    <span class="required">*</span></label>
  <div class="da-form-item large"> <span class="formNote">
    <?= $_LANG[135];?>
    </span>
    <select class="chzn-select required" name="ano_letivo">
      <?
                                                $type = $_GET['filter'];

                                                $q
                                                ->select()
                                                ->from('user')
                                                ->where_equal_to(
                                                                    array(
                                                                            'cargo'=>$type
                                                                    )
                                                            )
                                                ->run();

                                                if($q){
                                                        $unit=$q->get_selected();
                                                        foreach($unit as $array){

                                                                print "<option value='".$array['id']."'>".$array['nome']."</option>";
                                                         }
                                                }

                                                ?>
    </select>
  </div>
</div>

我想要不刷新页面。 通过ajax我该怎么做?

记住,如果也选择了 4 个过滤器,则有 4 个复选框。

->where_equal_to(
                    array(
                            'cargo'=>$type,
                            'cargo'=>$type2,
                            'cargo'=>$type3
                        )
                )

最佳答案

试试这个代码。单击每个复选框,ajax 查询将传递到您的服务器端

<div class="da-form-row">
      <label>Filter</label>
      <div class="da-form-item">
        <ul class="da-form-list inline">
          <span class="formNote">
          <?= $_LANG[211]; ?>
          </span>
          <li>
            <input class="uniform" type="checkbox" name="individual" id="individual" value="0" onclick="check(this)" />
            <label>
              <?= $_LANG[11]; ?>
            </label>
          </li>
          <li>
            <input class="uniform" type="checkbox" name="individual" id="individual" value="1" onclick="check(this)"/>
            <label>
              <?= $_LANG[12]; ?>
            </label>
          </li>
          <li>
            <input class="uniform" type="checkbox" name="individual" id="individual" value="2" onclick="check(this)" />
            <label>
              <?= $_LANG[13]; ?>
            </label>
          </li>
          <li>
            <input class="uniform" type="checkbox" name="individual" id="individual" value="3" onclick="check(this)" />
            <label>
              <?= $_LANG[14]; ?>
            </label>
          </li>

        </ul>
      </div>
    </div>
    <div class="da-form-row">
      <label>
        <?= $_LANG[134];?>
        <span class="required">*</span></label>
      <div class="da-form-item large"> <span class="formNote">
        <?= $_LANG[135];?>
        </span>
        <select class="chzn-select required" name="ano_letivo">
          <?
                                                    $type = $_GET['filter'];

                                                    $q
                                                    ->select()
                                                    ->from('user')
                                                    ->where_equal_to(
                                                                        array(
                                                                                'cargo'=>$type
                                                                        )
                                                                )
                                                    ->run();

                                                    if($q){
                                                            $unit=$q->get_selected();
                                                            foreach($unit as $array){

                                                                    print "<option value='".$array['id']."'>".$array['nome']."</option>";
                                                             }
                                                    }

                                                    ?>
        </select>
      </div>
    </div>

这是脚本。将其放入 head 标签内

 <script>
    function check(box)
    {
    if(box.checked==true)
    {
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
       alert("success");
        }
      }
    xmlhttp.open("GET","index.php?filter="+box.value,true);
// change index.php to your pagename and filter is the parameter you should get in your server side.
    xmlhttp.send();
    }
    }
    </script>

关于php - 使用复选框 ajax 更改查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18177807/

相关文章:

php - 有一个 BaseController 并让所有 Controller 都扩展该类是个好主意吗?

javascript - 单击“下一步”按钮从数据库中一一获取问题并一一显示正确答案

php - 使用 PHP 将 MySQL 和 Postgres 数据库中的数据放入单个 HTML 表中

PHP/MYSQL : How to create image galleries that rotate/change during each page refresh/load

javascript - Parse.com 的 Stripe 云代码模块有限制吗?

javascript - php/mysql 将数组写入json文件

javascript - 使用 sinon.js stub ES6 类

javascript - 从所有signalr js文件生成一个js文件

PHP 检查 MYSQL 查询是插入还是更新

mysql - Doctrine2 在 Symfony2 中抛出异常