チェックボックスは HTML の配列形式で保存されます。ユーザーが選択したチェックボックスの値を取得したい場合は、トラバーサルを使用するか、implode を使用して配列を文字に直接変換して保存します。
php では、同じ名前のフォーム要素に配列形式で名前を付け、値を割り当てる必要があります。そうでなければ彼は分解できません。
例 1: foreach を使用してチェックボックスを走査する
コードは次のとおりです
コードをコピー
<入力タイプ = チェックボックス名 = "chk[]" 値 = 1>
<入力タイプ=チェックボックス名="chk[]" 値=2>
<入力タイプ=チェックボックス名= "chk[]" 値=3>
送信後は$_POST['chk']でアクセスしてください。配列内の要素は選択したチェックボックスの値です
PHPコード:
コードは次のとおりです
コードをコピー
foreach( $_POST["chk"] as $i=>$a )
{ echo $i."==>".$a." " }
//または $_POST["chk"][0] を単独で使用します
?>
結果:
0=>1
1=>2
2=>3
explodeを使用した例2
コードは次のとおりです
コードをコピー
データベースに保存する必要がある場合は、次の方法で処理した後、$expr の値を保存するだけです。
コードは次のとおりです
コードをコピー
if(!emptyempty($lang)) { $expr = join(",", $lang);
表示時にこのように処理すると元の配列が再生成されます。
コードは次のとおりです
コードをコピー
$lang =explode(',',$row(lang));
注: Serialize() と unserialize() を使用して配列を直接保存できますが、フィールドはテキスト型である必要があり、これは理想的ではありません。
例 3: 複数のレコードを同時に削除するか、複数のレコードを同時に変更する必要がある
ポイント:
1. フロントエンド フォームの名前に [] を追加します (例: )
2. バックエンドは次を受け入れます: $id = $_POST [id] [$i]; $i が同じ場合、$_POST [id] [$i] と $_POST [name ]。 [$i] は 1 対 1 の対応です。
1. フロントエンドフォーム:
コードは次のとおりです
コードをコピー
<フォーム名="form1" メソッド="post" アクション="__GROUP__/Repair/updateList">
選択した操作:
コードは次のとおりです
コードをコピー
/**
* * ステータスをバッチで変更します
*/
パブリック関数 updateList() {
$result = false;
for($i = 0; $i
$id = $_POST [id] [$i];
$check = $_POST [check] [$i];
$status = $_POST [ステータス] [$i];
//ログイン情報を保存します
$Repair = M ('修復');
$data ['id'] = $id;
$data ['check'] = $check;
$data ['ステータス'] = $status;
$result = $Repair->save ($data);
}
If (false !== $result) {
$this->success ( '変更成功!' );
} else {
$this->error ( '変更に失敗しました!' );
}
}
http://www.bkjia.com/PHPjc/633133.html
www.bkjia.com
true http://www.bkjia.com/PHPjc/633133.html 技術記事 チェックボックスは HTML の配列の形式で保存されます。ユーザーが選択したチェックボックスの値を取得したい場合は、トラバーサルを使用するか、implode を使用して配列を文字に直接変換して保存することができます...
声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。