我有html喜欢:
<form method="post" id="volunteer" name="volunteer" action="<?php echo $PHP_SELF;?>">
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
</br>
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
</br>
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
<input type="submit" value="Submit">
</form>
PHP代码落后,我试图从所有控件中获取所有Rank值:
$rank = $_POST['Rank'];
echo "<pre>";
print_r($rank);
echo "</pre>";
$output = "";
foreach($rank as $selected_value)
{
if($selected_value != "0") {
$output .= $selected_value . "<br />";
}
}
但首次提交时, $ output 为空。如果我在浏览器上单击“返回”并重新提交表单,我实际上得到的是非空数组和输出。
请指教!
答案 0 :(得分:0)
尝试制作
<form method="post" id="volunteer" name="volunteer" action="">
我已删除PHP_SELF
然后更改提交按钮
<input type="submit" value="Submit" name="submit_btn">
我希望这会起作用
答案 1 :(得分:0)
尝试在action=""
上写下你的php代码所在文件的名称,如下所示:
<form method="post" id="volunteer" name="volunteer" action="name-of-your-php-file.php">
答案 2 :(得分:0)
我实际测试了这个:
<?php
if (isset($_POST['Rank'])) {
$rank = $_POST['Rank'];
echo "<pre>";
print_r($rank);
echo "</pre>";
$output = "";
foreach($rank as $selected_value)
{
if($selected_value != "0") {
$output .= $selected_value . "<br />";
}
}
echo $output;
}
?>
它实际上适合我。
我做的唯一改变是:
<form method="post" id="volunteer" name="volunteer" action="./">
但是,这可能不是你的情况。
尝试以这种方式更改您的操作:
问题肯定存在。你能告诉我们你的目录结构是什么吗?你的档案在哪里? htdocs中的文件位置是什么?
ps:我的输出是这样的:
Array
(
[0] => Medium Priority
[1] => High Priority
[2] => Medium Priority
)
Medium Priority
High Priority
Medium Priority
答案 3 :(得分:0)
我刚试过这个,它可以在我的机器上运行。该文件的名称是sample.php也许您可以复制粘贴以查看是否有效
<?php
if(isset($_POST["Rank"]))
{
$rank = $_POST['Rank'];
$output = "";
foreach($rank as $selected_value)
{
if($selected_value != "0") {
$output .= $selected_value . "<br />";
}
}
echo $output;
}
?>
<form action="sample.php" method="post">
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
</br>
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
</br>
<select name="Rank[]" id="Rank">
<option value="0">Please select</option>
<option value="High Priority">High Priority</option>
<option value="Medium Priority">Medium Priority</option>
<option value="Low Priority">Low Priority</option>
</select>
<input type="submit" value="submit" />
</form>
答案 4 :(得分:0)
好吧,我已经在我自己的服务器上进行了测试。它工作正常。以下是您个人可能遇到的问题:
1)你误解了表单的工作方式。请记住,当您首次加载页面时,$ _POST ['Rank']变量将不会填充。只有在您提交数据时,才会填充$ _POST ['Rank']全局变量。
2)您实际上并未在示例代码中输出$output
变量。这可能只是Stack Overflow的遗漏,但是如果你想看到你的字符串化输出,那么你需要这样做。
答案 5 :(得分:0)
正如@koala_dev在评论部分所建议的那样,将id的“Rank”更改为unique会解决问题。