2

これにしばらく苦労しており、おそらく単純なものです...

お問い合わせフォームを送信しようとすると、次のエラーが表示され続けます

警告: implode() [function.implode]: 無効な引数が渡されました .... 240 行目。

HTML コード

<input type="checkbox" name="socialmedia[]" value="Facebook">Facebook<br>
<input type="checkbox" name="socialmedia[]" value="Twitter">Twitter<br>
<input type="checkbox" name="socialmedia[]" value="YouTube">YouTube<br>
<input type="checkbox" name="socialmedia[]" value="Flickr">Flickr<br>
<input type="checkbox" name="socialmedia[]" value="Vimeo">Vimeo<br>

PHP コード

$socialmedia = array();
$socialmedia = implode(",",$_POST['socialmedia']);

アイデアはありますか?

4

2 に答える 2

4

ユーザーがボックスをチェックしなかったときに、これを見たことがあります。警告が表示される理由$_POST['socialmedia']は、チェックボックスがチェックされていない場合、実際には存在しないためです。あなたは効果的に電話をかけていますimplode(",", NULL);


選択されたチェックボックスを文字列で取得するには:

$checkboxes = !empty($_POST['socialmedia']) ? $_POST['socialMedia'] : array();
$socialmedia = implode(',' $checkboxes);

それらを配列に入れたいと思うかもしれません。あなたの質問からはわかりにくいです。それらを配列に入れたい場合は、次のようにするだけです。

$socialmedia = !empty($_POST['socialmedia']) ? $_POST['socialMedia'] : array();

$socialmediaチェックボックスがチェックされていない場合は空の配列になるか、チェックボックスの値が含まれます。

于 2012-08-22T22:47:18.180 に答える
0

どうぞ:

<form method="post">
<input type="checkbox" name="socialmedia[]" value="Facebook">Facebook<br>
<input type="checkbox" name="socialmedia[]" value="Twitter">Twitter<br>
<input type="checkbox" name="socialmedia[]" value="YouTube">YouTube<br>
<input type="checkbox" name="socialmedia[]" value="Flickr">Flickr<br>
<input type="checkbox" name="socialmedia[]" value="Vimeo">Vimeo<br>
<input type="submit">
</form>
<?
$socialmedia = array();
if(isset($_POST['socialmedia'])) $socialmedia = implode(",",$_POST['socialmedia']);
print_r($socialmedia);
?>

if(isset($_POST['socialmedia']))唯一の変更は、配列を内破する前の追加のチェックです

于 2012-08-22T22:52:49.337 に答える