使用内爆函数读取复选框值

时间:2012-06-18 19:49:36

标签: php mysql

我已经插入了带有多个复选项的表单,这些复选项收集了一些值,我需要做的是将这些值作为由逗号分隔的字符串回显,但是我在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>

3 个答案:

答案 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并使用PDOMySQLi。如果您无法确定哪个,this article会对您有所帮助。如果您想学习,this is a good PDO tutorial

您会发现使用预准备语句不仅可以使您的代码更安全,而且在代码中实现起来也更加简单。

答案 2 :(得分:0)

使用foreach循环执行。

e.g。 :

$result = $_POST['checkbox'];
foreach($result as $i)
{
//your code goes here
}