ホームページ >バックエンド開発 >PHPチュートリアル >PHP でデータをバッチで変更するときの input[type=checkbox] に関連する問題

PHP でデータをバッチで変更するときの input[type=checkbox] に関連する問題

WBOY
WBOYオリジナル
2016-06-13 12:11:261052ブラウズ

php でデータをバッチで変更するときの input[type=checkbox] の問題

この投稿の最終編集者は sky94132003 で、2014-12-07 23:45:24 input[type=checkbox] を使用しましたjs 値「On」をデータベースに入力するのに便利な 1 と 0 に変換しました
<br />$('input[type="checkbox"]').change(function(){<br />    this.value ^= 1;<br />});<br />


フォームが複雑すぎるため、ここには掲載しません
とにかく、[]

という名前のフィールドもすべて入力しました。$_POST["blank"]; を除いて、通常どおりバッチ更新できます。 🎜>更新できないわけではありませんが、更新されます

たとえば、次のような詳細なテストがページにあります。バッチで変更できます

1. ID1~5 set $_POST["blank"] = 1 (play Tick)
Success
2. ID1~5 Set $_POST["blank"] = 0 (チェックを外す)
成功

3. ID 2,3 を設定 $ _POST["blank"] = 1

ID 1,2 は 1 になりますが、3 は変更されません

4. 再試行...ID 3,4,5$ _POST["blank"] = 1 を設定します (事前にすべて 0 に戻します)

結果は期待どおりです。 1、2、3 は空白 = 1 になりますが、ID 4 5 は変化しません



理論的には、PHP は空白 = 1 に設定した項目の数を知っていますが、最終的には ソートの先頭の
を 1 に設定します。配列ポインターが間違っているかのような気がします。しかし、他のフィールドは非常に正確かつ正常に更新および変更できるのはなぜでしょうか?

最も厄介なのは、エラーがどのように発生するのかを知ることですが、その理由はまだ見つかっていません





if (isset($_POST["edit_menu"])) {<br />    $gid =$_POST["gid"];<br />    $sql = "";<br />    $menuCount = count($_POST["id"]);<br /><br />    for($i=0;$i<$menuCount;$i++) {<br />        $title = $_POST["title"];<br />        $url = $_POST["url"];<br />        $id = $_POST["id"];<br />        $blank = $_POST["blank"];<br /><br />        $sql .= "UPDATE `menu` set <br />                        title='" . $title[$i] . "',<br />                        url='" . $url[$i] . "',<br />                        blank='" . $blank[$i] . "'<br />                    WHERE id='" . $id[$i] . "' AND gid = '$gid';";<br /><br />    }<br /><br />    $stmt = $pdo->exec($sql);<br /><br />}
------解決案-------------- --------
チェックを外したチェックボックスは送信されません。 php は選択されているチェックボックスの数だけを認識しますが、どのチェックボックスが選択されているかは認識しません
そのため、0, 1 変換を行わせるのではなく、チェックボックスの値を指定して、選択されたチェックボックスを識別する必要があります
チェックボックス。 value は通常、代替オプションのシリアル番号または ID です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。