现在已经挣扎了一段时间,可能很简单......
在尝试提交联系表单时,我一直收到以下错误
警告: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']);
任何想法?
答案 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']))