0

動的フィールドを持つ複数のチェックボックスからテーブルを更新したいと考えています。

以下のコードでチェックボックスを作成しました。

<div class="form-horizontal" style="margin-right: 35px; margin-left: 0px;">
<div class="form-group">
<?  $i = 0; 
    foreach ($row_specifics as $title => $value) { ?>
        <label class="control-label col-lg-2"><?= $title ?></label>
        <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;">
            <div class="make-switch switch-small" data-on="success" data-off="danger">
                <input id="<?= $title ?>" name="<?= $title ?>" type="checkbox" <?= $value=='on' ? 'checked' : ''?> />
            </div>
        </div>
    <? $i++;
        if($i % 4 == 0) { ?> 
    </div>
    <div class="form-group"> 
        <?} 
    }?>
</div>

だから私はそれを望むようにこれを手に入れます。 プレビュー

フォームを送信すると、テーブルからすべてのフィールドを取得する関数を実行し、specificsフォームからの変更でテーブルを更新しようとします (チェックボックス)

foreach ($row_specifics as $title => $value) {
    $valueToInsert = ( isset($_REQUEST[$title]) ) ? $value : null;

    if( $valueToInsert ) {
        $query = mysql_query("UPDATE `specifics` SET $title = '{$valueToInsert}' WHERE `car_id`= $id");
    }
}
  • フォームを変更してPOSTテストの変更を送信しても、何も起こりません。
  • フォームを変更してGETテストの変更を送信するとon、URL クエリの値のみが取得されます。

問題を確認するために$title$valueToInsert内部をエコーし​​ようとしましたが ( )、値が 3 つしか得られません [ ]。ifPOSTABS on / ESP on / Immobilizer on

REQUEST:誰かがチェックボックスのオプションを変更したときに、テーブルを正しく更新したい。このフォームとチェックボックスは管理ページの編集パネルにあり、ユーザーはテーブル内のレコードの仕様を編集します。

4

1 に答える 1

0

すべての値が期待どおりに機能しているかどうかを確認する必要があります。$_REQUEST 情報をすべて表示するには、次のコードを試してください。

$_REQUEST['someRequest'] = 'sweet';
$output = 'Requests:<pre>';
ob_start();
var_export($_REQUEST);
$output .= ob_get_contents();
ob_end_clean();
$output .= '</pre>';
print $output;

リクエストでそれらをより簡単に検出できるように、すべてのフォーム フィールドにプレフィックスを付けることをお勧めします。例えば:

<input id="<?= 'chickenButter' . $title ?>" name="<?= $title ?>" type="checkbox" />

次に、リクエストで「chickenButter」を確認します。

$_REQUEST['chickenButterCheerios'] = 'sweet';
foreach($_REQUEST as $key => $value){
    if(stristr($key,'chickenButter')){
        $output .= $value;
    }
}
print $output;//prints sweet

期待値をすべて取得したら、各スイッチの状態を決定して保存する方法に注意してください。詳細については、この質問を参照してください。

于 2013-11-04T20:29:31.643 に答える