0

4つのチェックボックスがあり、そのうちの2つ、つまり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>

データベースに2つのフィールド( "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

(選択されていないチェックボックス)をすでに知っていない限り、知ることはできません

ここにあなたの夢を現実にすることができる唯一の方法があります

//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

チェックされたチェックボックスの値を取得し、チェックされていないチェックボックスの値を取得しません。

このチュートリアルを使用する

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

チェックボックスがオンになっているかどうかを確認しますphp$_GET

于 2012-09-21T11:50:36.410 に答える
1

CheckboxChecked同じ名前の要素の値を示します。

したがって、指定した例では、チェックされていない値は取得されません。

しかし、各チェックボックスに異なる名前を付けると、あなたが望むものを達成することができます:-

<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条件に入れることができます。フォームの送信には、デフォルトのHTMLの代わりにAjax + JSまたはJQueryを使用できるため、チェックされていない値を別の名前で提供し、それに応じて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">

javab25.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 に答える