2

现在一直在努力解决这个问题,可能很简单......

我在尝试提交联系表时不断收到以下错误

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

代码

<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 回答