我一直在努力解决以下问题
我有一个页面,我从一个运动队的位置特定的球员拉出名字。 示例: 我将使用下拉列表显示小队中的所有Wings,然后教练可以选择他的侧翼进行比赛。
每个不同的位置都有下拉列表 该页面的目的是让教练快速选择他的团队作为一个夹具
在教练选择他的球队之后,他将选择所选球队将与之对抗的对手。
当他点击提交选定的oppents时,玩家将被存储在两个阵列中,这两个阵列将被调用以在新页面上显示所选团队及其对手。 (之后它将上传到数据库。)
我无法从选择列表中获取值以显示在新页面上。
我想我必须在新页面上做这样的事情:
foreach ($_REQUEST['opponents'] as $opponents){
print $opponents;
echo'<br>';
}
但它没有给出预期的结果。
奇怪的是,打印的内容是上一页选择菜单中的变量名称。 经过进一步检查,我在新页面上做了一个vardump,它说$ opponenets传递的是一个字符串值,它是变量名而不是它的值?
我的页面看起来像这样 我的问题是如何从选择下拉列表中获取值
if(isset($_POST["submit"]))
{
foreach ($_REQUEST['opponents'] as $against){
var_dump($against);
print $against;
echo'<br>';
}
}
else
{
echo'<h1>Select your Team</h1>';
$x = array("THP", "HKR", "LHP", "LH", "FLH"); //players positions gets assigned to x which will be used to query the database
echo '<form name="playerselect" method="post" action="">';
//query database with different query after each loop
for ($i = 0; sizeof($x) > $i; $i++)
{
//query where position field equeals variable x
$result = mysql_query("SELECT `name`, `position` FROM `player_info`
WHERE `position` = '$x[$i]'") or die(mysql_error()) ;
//Gets data from DB and assigns values to arrays below
while($row = mysql_fetch_array($result))
{
$playername[] = $row['name'];
$position[] = $row['position'];
}
//print player position
print $position[0];
echo'<br>';
//unset the array so that it is empty for the next query in the new loop
unset($position);
echo '<select name="players[]" >' ;
foreach ($playername as $name )
{
//Put playernames relevant to the position in the option element
echo'<option value="$name" selected="selected">'.$name;'</option>';
echo'<br>';
}
echo'</select>';
//unset array so that its contents is empty for the next query in the new loop
unset($playername);
echo'<br>';
}
答案 0 :(得分:0)
你做不到。您的提交只会传输选择的值。这不是一个错误,它是一个功能。您不希望从/向服务器/客户端来回发送数据,这两者都是已知的。
在服务器上,您可以随时查询数据库。您还可以将选择列表缓存到初始列表读取中的$ _SESSION变量中。然而,由于您的缓存列表可能已过时,并且您的服务器内存利用率必须为文件缓存留出空间(SESSION缓存转到文件),因此这是高级装配。
如果您要进行数据库查询,则可能需要一些ID作为锚点。只需将其放入$ _SESSION变量 - 例如:
$ _ SESSION [ '位置'] = $ X;
在你的例子中,$ x似乎是静态的,这显然减少了将它缓存到$ _SESSION的需要 - 但是在其他情况下你可能需要这种方法。