问题
I have a php form which has a checkbox option in which if the user selects 'Other', a text input appears. This is working well but the data is not submitting. Im gettting the error message PHP implode(): Invalid arguments passed
Here is:
PHP validation
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']);
}
Here is the JS/HTML form
<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']; ?>"/>
回答1:
$_POST['competitor_model']
is an array.Try this :
if (is_array($_POST['competitor_model']))
{
$compmodel = implode(",", $_POST['competitor_model']);
}
or try so-
echo implode(', ', (array)$_POST['competitor_model']);
PHP implode()
回答2:
I faced the same problem and this is what worked for me in Laravel:
$contributes = $request->your_contribute;
$each_contribute = implode(',', (array)$contributes);
回答3:
Error Message :implode(): Invalid arguments passed in C:\xampp\htdocs\test_01\index.php on line 70
Answer : This type of error message occur when implode function do not get any array with string to implode.
来源:https://stackoverflow.com/questions/33601881/php-implode-invalid-arguments-passed