我之前发布了类似的内容,但我认为我解释得不太好,所以我将包含一个更大的代码片段来突出我的问题。
我创建了一个用于访问数据库的下拉列表选择,我希望将该选择发送到php页面并提取以供使用。
下拉列表访问数据库并根据需要提取不同的条目,但在选择一个并提交后,我不知道如何在另一端收集变量。
为了这个例子的目的,我将变量发送到传输页面,并让另一个php脚本收集变量并回显内容。
发送页面---------------
# parameters for connection to MySQL database
$hostname="";
$database="";
$ausername="";
$apassword="";
mysql_connect ("$hostname","$ausername","$apassword");
mysql_select_db ("$database");
$query = mysql_query("SELECT DISTINCT username FROM dbusers") or die(mysql_error());
?>
<div id="seelct_users" style="position:absolute;width:466px;height:108px;">
<form name="select_user" method="POST" action="./index.php" id="Form1">
<div id="select_a_user" style="position:absolute;left:0px;top:20px;width:100px;height:20px;z-index:11;text- align:left;">
<span style="color:#000000;font-family:Arial;font-size:15px;">Select User</span></div>
<select name="users" multiple size="1" id="users" style="position:absolute;left:93px;top:15px;width:200px;height:75px;z-index:12;">
<option value=""> Select a user</option>
<?php
while($row = mysql_fetch_assoc($query)){
$username = $row["username"];
?>
<option value= <?php $username ?> > <?php echo $username ?> </option>
<?php
}?>
</select>
<input type="submit" id="Button1" name="" value="Submit" style="position:absolute;left:93px;top:100px;width:96px;height:25px;z-index:13;">
</form>
</div>
在一个单独的脚本中的同一页上有
<?php
$search =$_POST['username'];
echo $search;
?>
这是为了模拟处理页面接收变量以供使用,但它不能接收任何内容。
我一定不是很接近,就是完全找错了树,但我似乎找不到它在做什么的答案,有人能在这里解释我的错误吗。
感谢
您的元素名为users
,但您使用的是$_POST['username'];
。使用$_POST['users'];
此外,对于多选,您需要将其用作数组,这样您就可以读取多个值。
<select name="users[]" multiple>
这将确保您在PHP中将其作为数组获得。
虽然你的size="1"
让它有点没用。。。如果要选择多个条目,请删除size="1"
;如果只选择一个条目,则从选择中删除multiple
。
当然,对于数组,不能只使用echo $_POST['users'];
,还需要遍历数组的所有值。
foreach ($_POST['users'] as $username) {
echo $username;
}