警告:implode()[function.implode]:在表单复选框中传递的参数无效

时间:2012-08-22 22:42:17

标签: php html sql

现在已经挣扎了一段时间,可能很简单......

在尝试提交联系表单时,我一直收到以下错误

  

警告:implode()[function.implode]:第240行传入的参数无效。

HTML CODE

<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']);

任何想法?

2 个答案:

答案 0 :(得分:4)

我之前看到过这种情况,当用户没有检查任何方框时。您收到警告的原因是,如果未选中复选框,则$_POST['socialmedia']实际上不存在。您实际上是在呼叫implode(",", NULL);


要在字符串中获取所选复选框:

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

好像你可能想要它们在一个数组中。你的问题很难说清楚。如果你想在阵列中使用它们,你可以这样做:

$socialmedia = !empty($_POST['socialmedia']) ? $_POST['socialMedia'] : array();
如果没有选中复选框,

$socialmedia将是一个空数组,或者包含复选框的值。

答案 1 :(得分: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']))