PHP内爆():传递的参数无效

PHP内爆():传递的参数无效,php,implode,Php,Implode,我有一个php表单,它有一个复选框选项,如果用户选择“其他”,就会出现一个文本输入。这是工作良好,但数据没有提交。我正在获取错误消息PHP introde():传递的参数无效 这是: PHP验证 if(!isset($_POST['competitor_model'])){ echo '<p><font color="red" size="+1">• Please select at least one competitor model</font>&l

我有一个php表单,它有一个复选框选项,如果用户选择“其他”,就会出现一个文本输入。这是工作良好,但数据没有提交。我正在获取错误消息PHP introde():传递的参数无效

这是:

PHP验证

if(!isset($_POST['competitor_model'])){   
echo '<p><font color="red" size="+1">• Please select at least one competitor model</font></p>';
} else {
$compmodel = implode(',', $_POST['competitor_model']); 
}
if(!isset($\u POST['competitor\u model']){
echo“•请至少选择一个竞争对手型号”

; }否则{ $compmodel=内爆(“,”,$\u POST['competitor\u model']); }
这是JS/HTML表单

        <script type="text/javascript">
        var temp = '';
        function disableTxt() {
        var field = document.getElementById("other");
        if(field.value != '') {
        temp = field.value;
        }
        field.style.display = "none";
        field.value = '';
        }
        function enableTxt() {
        document.getElementById("other").style.display = "inline";
        document.getElementById("other").value = temp;
        }
        </script>         


        <input type="checkbox" value="BMW 3-series" onchange="disableTxt()"  name='competitor_model[]'>BMW 3-series<br>
        <input type="checkbox" value="Mercedes Benz C-class" onchange="disableTxt()"  name='competitor_model[]'>Mercedes Benz C-class<br>
        <input type="checkbox" value="Lexus IS" onchange="disableTxt()"  name='competitor_model[]'>Lexus IS<br>
        <input type="checkbox" value="Audi A4" onchange="disableTxt()" name='competitor_model[]'>Audi A4<br>
        <input type="checkbox" value="Other"  onchange="enableTxt(Number)" name='competitor_model[]'>Other <em>If yes please submit model</em>
        <input type="text" name="competitor_model[]" id="other" style="display:none;" value="<?php if (isset($_POST['competitor_model'])) echo $_POST['competitor_model']; ?>"/>

var temp=“”;
函数disableTxt(){
var字段=document.getElementById(“其他”);
如果(field.value!=''){
温度=字段值;
}
field.style.display=“无”;
field.value='';
}
函数enableTxt(){
document.getElementById(“其他”).style.display=“内联”;
document.getElementById(“其他”).value=temp;
}
宝马3系
梅赛德斯-奔驰C级
雷克萨斯是
奥迪A4
其他如果是,请提交模型
$\u POST['competitor\u model']
是一个数组。请尝试以下操作:

if (is_array($_POST['competitor_model']))
        {
        $compmodel = implode(",", $_POST['competitor_model']);
        }
或者试试看-

echo implode(', ', (array)$_POST['competitor_model']);

我也面临着同样的问题,这正是对我有效的方法 在拉威尔:

$contributes = $request->your_contribute;
$each_contribute = implode(',', (array)$contributes);
错误消息:内爆():在第70行的C:\xampp\htdocs\test\u 01\index.php中传递的参数无效


答:当内爆函数未获取任何要内爆的字符串数组时,会出现此类错误消息。

您不应在输入文本上使用
competitor\u model[]
。而且,
标签多年来一直被弃用。改用CSS。最后,在使用
内爆()
$\u POST['competitor\u model']]
之前,至少应该检查PHP中的
是否为数组()。请尝试
var\u dump($\u POST['competitor\u model'])
并确认?问题在别处。您可以只
var\u dump
并查看是否获得了值吗?可能是因为
$\u POST['competitor\u model']
没有生成数组@Raptor是的,我没有注意到它是文本,您的文本是正确的,我们没有将它初始化为数组。