0

我有 4 个复选框,假设我只检查其中两个,即 user1 和 user3

<input type="checkbox" name="usersp[]" value="1" checked="checked" />User1 <br>
<input type="checkbox" name="usersp[]" value="2"/>User2 <br>
<input type="checkbox" name="usersp[]" value="3" checked="checked" />User3 <br>
<input type="checkbox" name="usersp[]" value="4"/>User4 <br>

我的数据库中有两个字段(“User_id”,“Selected”),下面是我的插入代码

foreach($_POST['usersp'] as $user_id) {
  $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','')";
  $result = mysql_query($sql);
}

我的问题是如何在“已选择”字段中插入已检查用户作为值 1 和其他作为值 0?

4

4 回答 4

1

您将获得选中复选框的值,而不是未选中复选框的值。

使用本教程

http://www.html-form-guide.com/php-form/php-form-checkbox.html

确定是否选中复选框 php $_GET

于 2012-09-21T11:50:36.410 回答
1

除非您已经知道它们,否则您无法知道(未选中的复选框)

只有这样才能让你的梦想成真

//YOUR USERS IDS
$userIDS=array('1','2','3','4');
//CHECKED USERS ARRAY
$checkedUsers=array('1','3');

if(!isset($_POST['usersp'])){
foreach($userIDS as $userID){
    //IF IT IN CHECK ARRAY, CHECK IT!
    $checked=(in_array($userID,$checkedUsers))?' checked="checked"':'';
    echo '<input type="checkbox" name="usersp[]" value="'.$userID.'"'.$checked.' />';
}
}

else{
    foreach($userIDS as $userID){
        //USER SELECTED OR NOT?
        $selected=(in_array($userID,$_POST['usersp']))?'1':'0';
        $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','$selected')";
        $result = mysql_query($sql);
    }
}
于 2012-09-21T11:56:11.820 回答
1

Checkbox给出Checked同名元素的值.

因此,在您给出的示例中,您将不会获得未经检查的值。

但是如果你给每个复选框一个不同的名字,那么你可以实现你想要的: -

<input type="checkbox" name="usersp1" value="1" checked="checked" />User1 <br>
<input type="checkbox" name="usersp2" value="2"   />User2 <br>
<input type="checkbox" name="usersp3" value="3" checked="checked" />User3 <br>
<input type="checkbox" name="usersp4" value="4"   />User4 <br>

在 PHP 方面

for($i=1;$i<5;$i++){
    if(isset($_POST['usersp'.$i]){
         $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','1')";
         $result = mysql_query($sql);
    }
    else{
        //Somehow you still have to get other User_id's in another way.
    }
}

现在,您可以在其他地方获取未选择的用户 ID 表单,您可以将其放入 else 条件中。您可以使用 Ajax + JS 或 JQuery 来提交表单,而不是使用默认的 HTML 提交,这样您就可以使用另一个名称为未选中的值提供服务,并在 PHP 中相应地处理它们

于 2012-09-21T12:01:33.993 回答
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">

jab25.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);
    }
于 2014-07-01T15:27:17.047 回答