我有一个选择输入,您可以在其中选择多个选项。不幸的是,我不知道如何将选定的值插入到我的数据库中。这是我试图使用的代码,它给了我一个无效的参数传递给我试图破坏它。
感谢您的帮助......
这是我的php:
$distribs = implode("|", $_POST["distributors"]);
$distribs = mysql_real_escape_string($distribs );
$distribs = mysql_real_escape_string($_POST['distributors']);
$sql="UPDATE customers SET distributors = '$distribs'
WHERE id='$id'";
这是我的选择:
echo "<select name='distributors' multiple='multiple'>";
答案 0 :(得分:1)
试试这个
echo "<select name='distributors[]' multiple='multiple'>";
答案 1 :(得分:1)
$_POST["distributors"];
不是数组,implode();
需要数组才能运行,
PHP.net Function for implode();
如果您的$_POST
是正确的数组格式;然后implode会将数组转换为单个字符串。
如果你的$ _POST包含来自<select> </select>
的信息,那么提交将是一个单独的字符串,可以插入数据库而无需implode();
函数。
如果您确定以数组格式提交$ _POST。用于 DeDav 有人建议。
填充$ _POST时运行此命令。
的print_r($ _ POST [ '经销商'])
如果您使用多重选择。再次使用 DeDav 建议:
echo "<select name='distributors[]' multiple='multiple'>";