2009-08-28 15 views
0

私はチェックボックスが入ったフォームを持っています。私は値が 'on'または ''(空)のいずれかであると常に考えていたチェックボックスの値を設定しませんでした。私は値 'を'データベースに渡している。問題は、ボックスのチェックを外してデータベースの値を ''(空)に変更していない場合です。入力ボックスなど、フォームの残りの値が変更されています。ここに私のチェックボックスに私のコードがありますデータベース内のチェックボックスの値を変更する

<input type="checkbox" name="form3_one_2" <?php if($form3_one_2 == 'on'){print 'checked="checked"';}?> /> 

私はフォームに入れられた値を持っていると思いますか?あなたがブラウザ上で選択されたとして、それはあなたがしているように見えるとして、それを書きたい場合は、チェックボックスの結果を取得したい場合は

+1

どのデータベースが書かれていますか?アクセス? – MartW

答えて

0

<input name="foo" selected="selected" ... /> 

を使用し、それは確かにするとき「オン」にする必要がありますフォーム(またはGETを使用している場合はクエリ文字列)で渡します。

+0

'selected'属性とは何ですか? – strager

+0

Ah。チェックボックスはchecked = "checked"を使うと思います。 Selectedはラジオボックス(または選択可能なもの)に適用されます。それは選択されているかチェックされていることを意味します:) – Rushyo

1

フォームのチェックボックスを確認してください。あなたの$ form3_one_2はとにかくから来ている :フォームが掲載されている場合、ところで

<?php 

if('POST' == $_SERVER[ 'REQUEST_METHOD' ]) 
{ 
    /* for security reasons just check 
    * if it isset and set it to 'on' yourself 
    * never trust users input, always validate/sanitize 
    */ 
    $form3_one_2 = isset($_POST[ 'form3_one_2' ]) ? 'on' : '' ; 
} 

?> 

ような何か?ジュラ紀時代からの巨大なセキュリティホールでもあるあなたはまだini setting register_globalsを使って作業していると感じています。 register_globalsがoffに設定されていることを必ずプログラムしてください。

+0

あなたの言っていることは分かりません。まずセキュリティの問題はありません! 私はいつも私が考えていることを言葉にすることにうまくいないので、もう一度やり直してください。 値 'on'はデータベースに格納されています。 (これは動作します) 私の問題は、ユーザーがフォームを更新できるようにすることです。 彼らは古い情報を読むために、このコードを <?php if($ form3_one_2 == 'on'){print 'checked = "checked"';}?>> の形式で入力します。データベースからの情報 フォームのチェックを外して再送信すると、値 'on'はデータベースに残ります。 (これは私の問題です) – PeggyMe

+0

フォームの各セクションの各ボックスを追跡するために、$ form3_one_2というチェックボックスに名前を付けました。フォームには200を超えるチェックボックスがあります。 – PeggyMe

+0

私はあなたの問題をうまく理解しています。私はそれが明確化を必要とする私の応答だと思う。私が言いたいことは、受信側(送信されたフォームを扱うPHPスクリプト)では、そのフォームにどのチェックボックスが存在しているかを知る必要があるということです。チェックボックスがオフの場合、値は送信されないためです。したがって、チェックボックスがオフになっているかどうかを知る唯一の方法は、値が不足しているかどうかをテストすることです。フォームに存在するチェックボックスに値が入力されていない場合、チェックボックスはオフになっています。 これは何ですか $ form3_one_2 = isset($ _POST ['form3_one_2'])? 'on': ''; です。 –

関連する問題