选择或取消选中复选框并在PHP中运行不同的查询

时间:2013-10-23 11:46:23

标签: php mysql checkbox checked unchecked

编辑:

所以,我有多个复选框。我的目标是在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);
    }
}

6 个答案:

答案 0 :(得分:2)

这是我的复选框:

<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];
        }

答案 1 :(得分:1)

假设您已使用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
  }

答案 2 :(得分:1)

试试这段代码:

<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
         } 
?>

- 感谢

答案 3 :(得分:0)

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

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

提交表格后,您可以查看:

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

答案 4 :(得分:0)

假设您的复选框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--
        }
    ?>

答案 5 :(得分:0)

为我工作,将检查和取消选中值保存到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);
    }