我之前发布了与此类似的内容,但我认为我解释得不太好,所以我将包含一个更大的代码片段来突出我的麻烦。
我创建了一个用于访问数据库的下拉列表选择,我希望将选择发送到 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"
(如果您愿意)若要仅选择一个条目,请从您的选择中删除多个
。
当然,对于数组,您不能只是 echo $_POST['users'];
,您需要遍历数组的所有值。
foreach ($_POST['users'] as $username) {
echo $username;
}
关于php - 从 php 页面收集 MySQL 组合框选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23824411/