2011-12-31 17 views
0

名前のステータスのチェックボックスがあります。これは、私はそれをやっている方法です:データベースにチェックボックスのエントリを挿入する

$insert = "INSERT INTO submitted (statuses) 
    VALUES ('".$_SESSION['statuses']."')"; 

    $query = mysql_query($insert) or die ("Error: ".mysql_error()); 

問題がデータベースに挿入されますチェックされているものではありませんので、私をどのように行う:私はそれをやっている方法であること、それを挿入し

$_SESSION['statuses'] = mysql_real_escape_string($_POST['statuses']); 

チェック項目を挿入しますか?

NEW/UPDATE:

これは、チェックボックス、フォームがどのように見えるかです:あなたは、フォームのために書かれている最大

    <input type="checkbox" name="statuses" value="something"> 
     <input type="checkbox" name="statuses" value="something"> 
     <input type="checkbox" name="statuses" value="something"> 
     <input type="checkbox" name="statuses" value="something"> 
     <input type="checkbox" name="statuses" value="something"> 
     <input type="checkbox" name="statuses" value="something"> 
+0

があるはずは考えていなかった場合は考えていません? '$ _POST ['statuses']'とは何ですか?それは1対1の価値ですか? –

+0

これは5ページのフォームからのものなので、セッションを使用しています。 $ _POST ['statuses'];チェックボックス用です。 – AAA

+0

それはウィザードの一部です。 'name =" statuses [] "'挿入しようとしている値は実際に文字列か他の型の値(配列など)ですか? –

答えて

5

おそらく問題はマークにあるかもしれません。ここだと例:optionsoptions[]として設定されていることを

<form action="checkbox-form.php" method="post"> 
Select your options<br /> 
<input type="checkbox" name="options[]" value="A" />A<br /> 
<input type="checkbox" name="options[]" value="B" />B<br /> 
<input type="checkbox" name="options[]" value="C" />C<br /> 
<input type="submit" name="formSubmit" value="Submit" /> 
</form> 

注意してください。これにより、チェックされたすべてのオプションの配列がPOSTのスーパー変数に表示されます。

そうした場合:

var_dump($_POST['options']); 

あなたは、すべてにチェック値を含む配列を取得する必要があります。

$insert = "INSERT INTO submitted (statuses)  
    VALUES ('". implode(",", $_POST['options']) ."')";  

    $query = mysql_query($insert) or die ("Error: ".mysql_error()); 

更新:値をエスケープして保存するようにあなたが何かを持っている必要があり、フォームの各ページに

foreach($_POST['options'] as &$option){ 
    mysql_real_escape_string($option); 
} 

が続いてデータベースに挿入します。

次に、あなたのような何かを行うことができますそれはセッションにこれは、ユーザーのセッションに、各ページからの値を保存します。

//Page 1 
foreach($_POST['options'] as $option){ 
    $_SESSION['options'][] = mysql_real_escape_string($option); 
} 

//page 2 
$_SESSION['SOME_OTHER_VALUE_FROM_TEXT_BOX'] = mysql_real_escape_string($_POST['SOME_OTHER_VALUE_FROM_TEXT_BOX'); 

//Final page: 
//Everything is now stored in SESSION, so you can use them there: 
//For example, display the value of options: 
var_dump($_SESSION['options']); //etc 

//So here, you would just run your sql queries to insert the appropriate data into your databse. 
+0

私はvar_dumpを使用すると、1つのthign、値は、次のページに表示されます。帽子がユーザーに表示されないようにする方法。 – AAA

+0

'var_dump'はあなたが見るために値を出力します。これはデバッグの目的で使用されます。 var_dump行を削除するだけで大​​丈夫です。 – F21

+0

私はすべてのオプションを選択した場合、それは私に構文チェックエラーを与えるが、私は何か間違って見つけることができない試合20があります。 – AAA

1

これは、データベースに挿入するとき、私は、チェックボックスのために使用するものです。

function validateCheckBox($name) { 
    if (isset($_POST[$name]) && !empty($_POST[$name]) && $_POST[$name] === 'on') { 
     return 1; 
    }else{ 
     return 0; 
    } 
} 
-1

あなただけこれを入力した、またはあなたはそれが

$_SESSION['SOME_OTHER_VALUE_FROM_TEXT_BOX'] = mysql_real_escape_string($_PSOT['SOME_OTHER_VALUE_FROM_TEXT_BOX'); 

なぜあなたはこれを行うには、 `SESSION`変数を使用している

$_SESSION['SOME_OTHER_VALUE_FROM_TEXT_BOX'] = mysql_real_escape_string($_POST['SOME_OTHER_VALUE_FROM_TEXT_BOX'); 
+0

を納得させています。新しい答えを投稿する代わりにその答えをコメントすることが正しい方法でしょう。 – Lauri

関連する問題