关于PHP复选框提交问题,每次提交到数据,只显示1个选择的值,而不是多选的值。

PHP代码是:if(SubmitCheck()){$province=addslashes(trim($_POST['province']));$name=addslas... PHP代码是:
if (SubmitCheck())
{
$province = addslashes(trim($_POST['province']));
$name = addslashes(trim($_POST['city']));
$grade = addslashes(trim($_POST['grade']));
$xuan1 = addslashes(trim($_POST['xuan1'])); 《---- 在这里
$textfield = addslashes(trim($_POST['textfield']));
//连接数据库
DBconnect();
$sql = "insert into j_conther (userid,province,name,grade,xuan1,textfield,fbsj) values(" . $_SESSION['id'] . ",'" . $province . "','" . $name . "','" . $grade . "','" . $xuan1 . "','" . $textfield . "','" . date("Y-m-d"). "')";

------------------------------------------------------------------------------

HTML代码是

<form action="index.php" method="post" name="creator" enctype="multipart/form-data">

( 其他单选省略不写了,就写多选这个代码)

<label>
<input type="checkbox" name="xuan1" value="1" id="1" >1
</label>
<label>
<input type="checkbox" name="xuan1" value="2" id="2">
2</label>
<label>
<input type="checkbox" name="xuan1" value="复选框" id="3">
复选框</label>
<label>
<input type="checkbox" name="xuan1" value="22" id="4">
22</label>
</form>

为什么多选全部选择后,数据库只有 1个值,而不是全部的
比如说 我选了 1 2 复选框 22 结果数据是 22 只有1个。
展开
 我来答
卫当官
2014-03-14 · TA获得超过519个赞
知道小有建树答主
回答量:684
采纳率:0%
帮助的人:330万
展开全部

复选框的名称全部改为  xuan1[],如

 <label>
    <input type="checkbox" name="xuan1[]" value="1" id="1" >1
   </label>
  <label>
    <input type="checkbox" name="xuan1[]"  value="2" id="2">
    2</label>
  <label>
    <input type="checkbox" name="xuan1[]"  value="复选框" id="3">
    复选框</label>
  <label>
    <input type="checkbox" name="xuan1[]"  value="22" id="4">
    22</label>


取值时

	$count=count($_POST['xuan1']);
$value="";
for ($i=0;$i<$count;$i++) {
    $value.=$xuan1[$i]." ";
}
更多追问追答
追问

按照你xuan1[] 修改,提交后报错,数据库里是空的。

 

 

 

 

 

报错代码是 16 行的

 

 

16行 : $xuan1 = addslashes(trim($_POST['xuan1']));

追答
$xuan1 = $_POST['xuan1'];
摩惠然0iD
2014-03-14 · TA获得超过1634个赞
知道小有建树答主
回答量:1162
采纳率:100%
帮助的人:858万
展开全部
测试了一下,和多文件上传一样,多选框的name值需要设置成xuan1[] 就是要在后面加个中括号,这样获取的选项会包含在的一个数组中
获取的时候依然是用$_POST['xuan1'])
追问

按照你xuan1[] 修改,提交后报错,数据库里是空的。

报错代码是 16 行的

16行 : $xuan1 = addslashes(trim($_POST['xuan1']));

追答
你要修改一下吧,$_POST['xuan1'] 返回的是一个数组,不能直接trim
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-14
展开全部
<input name="ids[]">ids[] 是亮点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-14
展开全部
复选框名称要一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-14
展开全部
贴代码出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式