我已经插入了带有多个复选项的表单,这些复选项收集了一些值,我需要做的是将这些值作为由逗号分隔的字符串回显,但是我在implode函数中遇到错误,它表示传递了无效的参数
你能看到代码吗?
if(isset($_POST['Submit'])) {
echo "<pre>"; print_r($_POST);
$checked = mysql_real_escape_string(implode(',', $_POST['checkbox']));
echo $checked;
}
?>
HTML表单
<form action="checkbox.php" method="post">
<input type="checkbox" name="checkbox[]" value="hostess_name">
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en">
<input type="checkbox" name="checkbox[]" value="hostess_id">
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>
答案 0 :(得分:3)
试试这个
if(isset($_POST['Submit'])) {
echo "<pre>"; print_r($_POST);
$checked = implode(',', $_POST['checkbox']);
echo $checked;
}
这是我放在test.php
<?php
if(isset($_POST['Submit'])) {
echo "<pre>";
$checked = implode(',', $_POST['checkbox']);
echo $checked;
}
?>
<form action="test.php" method="post">
<input type="checkbox" name="checkbox[]" value="hostess_name">
<input type="checkbox" name="checkbox[]" value="hostess_familyname_en">
<input type="checkbox" name="checkbox[]" value="hostess_id">
<input type="checkbox" name="checkbox[]" value="hostess_firstname_en">
<br>
<br>
<input type="submit" name="Submit" value="Submit">
</form>
答案 1 :(得分:1)
Adnan的代码也适用于我。对于OP,您是否可以发布print_r
语句的结果,以便我们可以验证是否正在为复选框发布某些内容?您的isset
代码会检查表单是否已提交,但我还要确保为复选框提交了一些内容。
我对OP的问题也有一些其他的评论,但是,基于我注意到的一些事情。 A)您使用echo "<pre>"
,但绝不使用带有echo "</pre>"
的结束标记。也许你刚刚关闭了这段代码,但是如果你不用关闭标签,这可能会使你的输出变得粗糙。
B)请不要将mysql_*
函数用于新代码。它们已不再维护,社区已开始deprecation process(请参阅red box)。相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法确定哪个,this article会对您有所帮助。如果您想学习,this is a good PDO tutorial。
您会发现使用预准备语句不仅可以使您的代码更安全,而且在代码中实现起来也更加简单。
答案 2 :(得分:0)
使用foreach循环执行。
e.g。 :
$result = $_POST['checkbox'];
foreach($result as $i)
{
//your code goes here
}