【问题标题】:Selecting or deselecting checkboxes and running different queries in PHP选择或取消选择复选框并在 PHP 中运行不同的查询
【发布时间】:2013-11-01 16:13:11
【问题描述】:

已编辑:

所以,我有多个复选框。我的目标是如果选中则在 MySQL 中插入复选框值,如果未选中则从 MySQL 中删除复选框值。除了删除值外,一切正常。 PHP 不知道哪些复选框是“未选中的”。有什么想法吗?

到目前为止,我有这个:

if(isset($_POST['values']))
{
    foreach($_POST['values'] as $checked)
    {
        $query5 = ("
        INSERT INTO ecust_user_contract (fk_contract, fk_cust_user)
        VALUES ('".$checked."','".$username_u."')
        ");
        $result5 = mysqli_query($conn,$query5); 
    }
}
if(!isset($_POST['values']))
{
    foreach($_POST['values'] as $unchecked)
    {
        $query5 = ("
        INSERT INTO ecust_user_contract (fk_contract, fk_cust_user)
        VALUES ('".$unchecked."','".$username_u."')
        ");
        $result5 = mysqli_query($conn,$query5);
    }
}

【问题讨论】:

  • 知道了。解决这个问题的方法是每次对所有条目运行删除查询,然后只插入已检查的条目。它工作得很快,因为我的最大复选框数不超过 10-15 个。

标签: php mysql checkbox checked unchecked


【解决方案1】:

为我工作,将选中和取消选中的值都保存到 mysql

HTML:

<form method="post" action="jawab25.php">
<input type="hidden" name="check_lista[]" value="<?php echo $r["id"]?>">
<input type="checkbox" name="check_listb[]" value="<?php echo $r["id"]?>">
<input value="Check" type="Submit">

jawab25.php:

    foreach($_POST['check_lista'] as $itema){
        $string="update trans set ck='N' where id='$itema'";
        $tampil=mysql_query($string);
    }

    foreach($_POST['check_listb'] as $itemb){
        $string="update trans set ck='Y' where id='$itemb'";
        $tampil=mysql_query($string);
    }

【讨论】:

    【解决方案2】:

    假设你的复选框的 HTML 代码是这样的:

    <input type="checkbox" name="abc" value="yes" />
    

    然后在php方面:

    <?php
        if( isset( $_POST['abc'] ) ) {
            --Connect to your database--
            --write your query for Insertion--
            }
            else {
            --Connect to your database--
            --write your query for Deletion--
            }
        ?>
    

    【讨论】:

      【解决方案3】:

      试试这个代码:

      <input type='checkbox' name='Event[]' value='CB1' />
      <input type='checkbox' name='Event[]' value='CB2' />
      

      在您的表单中使用多个带有这样数组的复选框。

      提交表单后,使用以下内容检查复选框是否选中。

      <?php
               if(isset($_REQUEST['Event'])) 
               {
                      // do what you want for checked the boxes
               }
               else
               {
                      // do what you want for not checked any box
               } 
      ?>
      

      - 谢谢

      【讨论】:

        【解决方案4】:

        假设你已经使用POST方法提交表单,你可以这样做:

        html

        <input type="checkbox" name="values[]" value="val1">
        <input type="checkbox" name="values[]" value="val2">
        <input type="checkbox" name="values[]" value="val3">
        

        php:

        if(isset($_POST['values'])) {
         foreach($_POST['values'] as $checked){
         mysqli_query("insert into tablename(value) values($checked)");
          }
         }else{
         // use Delete query
          }
        

        【讨论】:

        • 这是我需要的结构,谢谢。它工作正常!谢谢。
        【解决方案5】:

        这是我的复选框:

        <input type='checkbox' name='Event' value='CB1' />
        

        在您处理表单的地方,要阅读此内容:

        $event = $_POST['Event'];
        

        这将获取复选框的值:

        echo $event;
        

        但请确保它已设置,否则您将获得空值。

        如果你有几个,你可以这样做:

        <input type='checkbox' name='Event[]' value='CB1' />
        <input type='checkbox' name='Event[]' value='CB2' />
        
        $event = array_values($_POST['Event']);
        

        要获取每个值的值,请将其放入 for 循环中:

        for ($val = 0; $val < count($event); $val++)
                {
                    //do something
                    echo $event[$val];
                }
        

        【讨论】:

          【解决方案6】:

          我想您正在向 php.ini 中的服务器端代码提交一些 html 表单。 如果你的 html 页面看起来像:

          <input type="checkbox" name="test" value="value1">
          

          提交表单后,您可以通过以下方式进行检查:

          isset($_POST['test'])
          or
          if ($_POST['test'] == 'value1')
          

          【讨论】:

          • 相应地运行您的查询。
          猜你喜欢
          • 1970-01-01
          • 2018-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-27
          • 1970-01-01
          • 2015-12-07
          • 1970-01-01
          相关资源
          最近更新 更多