0

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

3 回答 3

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>
于 2012-06-18T19:58:41.767 回答
1

Adnan 的代码也适用于我。对于 OP,您能否发布print_r声明的结果,以便我们验证是否为复选框发布了某些内容?您的isset代码检查表单是否已提交,但我想确保复选框也提交了某些内容。

但是,基于我注意到的几件事,我对 OP 的问题还有其他一些评论。A)您使用echo "<pre>"但您从不使用 echo 结束标记echo "</pre>"。也许您只是关闭了此代码,但是如果您关闭结束标记,则可能会使您的输出出现乱码。

B) 请不要mysql_*对新代码使用函数。它们不再被维护,社区已经开始弃用过程(见红框)。相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定哪个,这篇文章会帮助你。如果您想学习,这是一个很好的 PDO 教程

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

于 2012-06-18T20:17:17.943 回答
0

使用 foreach 循环执行。

例如:

$result = $_POST['checkbox'];
foreach($result as $i)
{
//your code goes here
}
于 2012-06-18T20:01:35.430 回答