0

いくつかの値を収集する複数のチェックボックス項目を使用してこのフォームを挿入しました。この値をコンマで区切られた文字列としてエコーする必要がありますが、implode関数でエラーが発生し、無効な引数が渡されたと表示されます。

コードをご覧いただけますか?

if(isset($_POST['Submit'])) {
    echo "<pre>"; print_r($_POST);
    $checked = mysql_real_escape_string(implode(',', $_POST['checkbox'])); 
    echo $checked;
}
?>

HTMLフォーム

<form action="checkbox.php" method="post">
<input type="checkbox" name="checkbox[]" value="hostess_name">
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en">
<input type="checkbox" name="checkbox[]" value="hostess_id">
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>
4

3 に答える 3

3

これを試して

if(isset($_POST['Submit'])) {
    echo "<pre>"; print_r($_POST);
    $checked = implode(',', $_POST['checkbox']); 
    echo $checked;
}

これが私が入れたものとまったく同じですtest.php

<?php
if(isset($_POST['Submit'])) {
    echo "<pre>";
    $checked = implode(',', $_POST['checkbox']);
    echo $checked;
}

?>
<form action="test.php" method="post">
<input type="checkbox" name="checkbox[]" value="hostess_name">
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en">
<input type="checkbox" name="checkbox[]" value="hostess_id">
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>
于 2012-06-18T19:58:41.767 に答える
1

Adnanのコードは私にも役立っています。OPにprint_r、チェックボックスに何かが投稿されていることを確認できるように、ステートメントの結果を投稿していただけますか?コードissetはフォームが送信されたことを確認しますが、チェックボックスにも何かが送信されていることを確認したいと思います。

OPの質問についても、他にもいくつかコメントがありますが、私が気付いたいくつかのことに基づいています。A)を使用echo "<pre>"しますが、。を使用して終了タグをエコーすることはありませんecho "</pre>"。このコードを省略しただけかもしれませんが、終了タグを省略した場合、出力が文字化けする可能性があります。

mysql_*B)新しいコードに関数を使用しないでください。それらはもはや維持されておらず、コミュニティは非推奨プロセスを開始しています(赤いボックスを参照)。代わりに、プリペアドステートメントについて学び、 PDOまたはMySQLiのいずれかを使用する必要があります。どちらかがわからない場合は、この記事が役に立ちます。あなたが学びたいのであれば、これは良いPDOチュートリアルです。

プリペアドステートメントを使用すると、コードがより安全になるだけでなく、コードへの実装が大幅に簡単になることがわかります。

于 2012-06-18T20:17:17.943 に答える
0

foreachループを使用して実行します。

例:

$result = $_POST['checkbox'];
foreach($result as $i)
{
//your code goes here
}
于 2012-06-18T20:01:35.430 に答える