多选列表放入数组中如何传递

angelideng 2003-11-12 10:22:20
我有一个多项选择列表,值为数据库一个表中的字段,多选之后是否会自动把选择的内容放入数组中并且在下一页面取得数组的值?
<?php
$query3="select * from parentinf;
echo ' <select name="student[]" multiple>';
echo " <option>请选择学生</option>";
$result3=mysql_query($query3);
while($row=mysql_fetch_array($result3))
{?>
<option value="<?php echo $row['MPHONE'];?>"><?php echo $row['STNAME']; ?></option>
<?
}
?>
这样写然后在显示的列表内容中选择任意数量的记录,student数组中是否应该存储被选择的记录的MPHONE值,我要在下一页面调用这个数组应该怎样做?
...全文
188 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelideng 2003-11-12
  • 打赏
  • 举报
回复
那我在后一页面上怎么取得数组?
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
大致这样:
<?php
print_r($_POST);
?>
<form name=form1 method=post>
<span id="A">
<select name="student[]" multiple>
<option value="a">aaa</option>
<option value="b">bbb</option>
<option value="c">ccc</option>
</select>
</span>
</form>

<form name=form2 onsubmit="ex_submit()" method=post>
<span id="B" style="display:none"></span>
<input type=submit>
</form>
<script>
function ex_submit() {
B.innerHTML = A.innerHTML; //把select复制到提交表单中
document.form2.submit()
}
</script>
angelideng 2003-11-12
  • 打赏
  • 举报
回复
知道了,我的多选列表在一个表单上,另外几个文本框和提交按钮在另一个表单,提交时取不到这个列表的值,怎样让它传递过去?
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
你总要有提交吧?
angelideng 2003-11-12
  • 打赏
  • 举报
回复
问题出在选择列表的地方,我怎么知道我选择的内容是否放到了那个数组中,我按这样写显示不出student的内容,是不是就说明没取到数组的内容?
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
$student = $_POST['student'];

echo $n = count($student);

for($i=0;$i<$n);$i++)
echo $student[$i];
angelideng 2003-11-12
  • 打赏
  • 举报
回复
谢谢,你是不是php用的很熟?每天都在网上等着回答问题:)
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
呵呵!你又换了个问题!
首先请测试上面我给的代码,以确认可以同时提交不同表单的内容!
其次,你的新问题是在不提交不刷新的前提下,动态修改下拉列表的内容。请参考:
与服务器交互的写法
<?php
$conn = mysql_connect(); // 连接数据库
mysql_select_db("test"); // 选择库

if(!isset($_GET['key'])) { // 检查是否有传递参数
$sql = "select * from list where type=''";
$rs = mysql_query($sql);
$str = "";
while($row = mysql_fetch_array($rs)) // 循环构造初始信息
$str .= "<option value='{$row['name']}'>{$row['name']}\n";
}else { // 有,产生脚本代码
$sql = "select * from list where type='{$_GET['key']}'";
$rs = mysql_query($sql);
$str = "sele2.options.length = 0;\n";
while($row = mysql_fetch_array($rs))
$str .= "sele2.options[sele2.options.length] = new Option('{$row['name']}',{$row['name']});\n";
echo $str;
exit;
}
?>
本方法通过改变script标记的src属性来达到动态修改列表框的内容<br>
<script id="sensele" src=""></script>
<script>
function loadsele(v) {
var s = v.options[v.selectedIndex].value;
sensele.src = "?key="+s;
}
</script>
<select id="sele1" onchange="loadsele(this)">
<?php echo $str; ?>
</select>
<select id="sele2">
</select>
<span id="view"></span>

表结构
CREATE TABLE list (
type varchar(10) NOT NULL default '',
name varchar(50) NOT NULL default ''
) TYPE=MyISAM;

#
# 导出下面的数据库内容 `list`
#

INSERT INTO list VALUES ('', 'A');
INSERT INTO list VALUES ('', 'B');
INSERT INTO list VALUES ('', 'C');
INSERT INTO list VALUES ('A', '1');
INSERT INTO list VALUES ('A', '2');
INSERT INTO list VALUES ('A', '3');
INSERT INTO list VALUES ('B', '4');
INSERT INTO list VALUES ('B', '5');
INSERT INTO list VALUES ('B', '6');
INSERT INTO list VALUES ('C', '7');
INSERT INTO list VALUES ('C', '8');
INSERT INTO list VALUES ('C', '9');

angelideng 2003-11-12
  • 打赏
  • 举报
回复
我这样还是取不到值,我的form1中有三个下拉列表,年级、班级、学生,选择了年级后自动显示这个年级的班级,选择了班机后显示该班的所有学生,选择学生后如果提交的话student这个列表就会刷新,怎么让它显示选取了哪些记录而不刷新又能把值传递给form2?
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
只要不重名就行
angelideng 2003-11-12
  • 打赏
  • 举报
回复
还是用student吗?我表单上还有其他下拉列表及文本框会有影响吗?
xuzuning 2003-11-12
  • 打赏
  • 举报
回复
一样

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧