选中复选框时更改sql语句

时间:2014-02-16 20:48:50

标签: javascript php sql checkbox

所以我在发布之前尝试过谷歌并没有找到任何适合我需求的东西。我希望你们能帮忙。

我有一个简单的表单只有一个下拉框和一个复选框。下拉框显示从数据库中提取的名称列表。该复选框最初未选中。我想要发生的是,当用户点击该框时,页面将刷新并更新下拉框以在列表中包含更多名称,具体取决于我设置的SQL查询。

所以形式如下:

    <form name="search" method="post" action="myaction.php">
       <table width="100%">
          <tr>
             <td><label>Select a name to search for:</label></td>
             <td><select name='mynames'><?php 
              echo "<option value='0'>-- Select a Name --</option>";
              mysql_data_seek($request_staff, 0);
              while ($row_mynames = mysql_fetch_assoc($mynames)) {
              echo "<option value='".$row_mynames['myID']."'>".$row_mynames['firstName'] . " " . $row_mynames['lastName'] ."</option>" ; }?></select></td>
              <td><input type="checkbox" name="checkActive" value="1">Include additional Names</td>                                                                                    
              <td><button id="submit" type="submit" ><span>Search</span></button></td>
         </tr>
       </table>
     </form>

我想我可能需要一些javascript但是我不确定我发现了一些建议只检查提交按钮的时间,但我需要在提交表单之前进行检查。

sql语句非常简单

    $sql = "Select myID, fName, lName, extraNames from myTable $mysearch;

我想要一个这样的where子句:(我知道这不是正确的代码,但这就是我想要它做的事情)

    if checkbox is checked {
       $mysearch = "";
    }else {
       $mysearch = "Where extraNames = 1";
    }

我有一些javascript检查另一个页面上的复选框,但我无法弄清楚如何用javascript更改sql查询(用php编写)。感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

HTML

<form name="search" method="post" action="myaction.php" id="myForm">
   <table width="100%">
      <tr>
         <td><label>Select a name to search for:</label></td>
         <td><select name='mynames'><?php 
          echo "<option value='0'>-- Select a Name --</option>";
          mysql_data_seek($request_staff, 0);
          while ($row_mynames = mysql_fetch_assoc($mynames)) {
          echo "<option value='".$row_mynames['myID']."'>".$row_mynames['firstName'] . " " . $row_mynames['lastName'] ."</option>" ; }?></select></td>
          <td><input type="checkbox" name="checkActive" value="1" onclick="$('#myForm').submit();">Include additional Names</td>                                                                                    
          <td><button id="submit" type="submit" ><span>Search</span></button></td>
     </tr>
   </table>
 </form>

PHP

$sql = "Select myID, fName, lName, extraNames from myTable";
if (!empty($_POST['checkActive'])) {
   $sql .= "WHERE `extraNames` = 1";
}

答案 1 :(得分:0)

由于网页在客户端(HTML)的浏览器中运行,并且SQL查询在服务器(PHP)上运行,因此您需要向页面添加一个参数(HTML)指示是否单击了复选框。当表单提交到服务器上的myaction.php URL时,您可以将该参数的值提供给if checkbox is checked语句。