重新加载同一页面时使用php设置选择选项

时间:2014-04-22 07:43:16

标签: php html mysql post

我有一个php select填充并通过使用php循环查询sql查询的结果给出匹配值。

$result = mysqli_query($con, "select * from course")

echo "<form action='' method='post'>";
echo "<select name='CourseSelect'>";
echo "<option value='0'> - Select Course - </option>";
while($row = mysqli_fetch_array($result))
{
 echo "<option value='" . $row['Title'] ." '>" . $row['Title'] . "</option>";
}

echo "</select>";
echo "<input name='SubmitCourse' type='submit'>";
echo "</form>";

这给了我一个填充了所有课程标题的下拉列表, 提交后,我可以使用$_POST['CourseSelect'];

访问所选值

然而,当页面重新加载时,下拉(选择)会将自身重置为默认值。

如何使用php选择该选项?

我知道我可以使用select选项中的selected关键字将该选项设为默认选项。

例如,加载页面时将选择第二个选项:

<select>
<option>One</option>
<option selected>Two</option>
<option>Three</option>
</select>

5 个答案:

答案 0 :(得分:1)

您可以将其简化为

while($row = mysqli_fetch_array($result))
{
 $select = '';
 if( isset($_POST['CourseSelect']) && $_POST['CourseSelect'] == $row['Title'] ) $select = 'SELECTED';
 echo "<option value='".$row['Title']."' ".$select.">" . $row['Title'] . "</option>";
}

答案 1 :(得分:0)

you can use like below..

$result = mysqli_query($con, "select * from course");
$selected = "";
echo "<form action='' method='post'>";
echo "<select name='CourseSelect'>";
echo "<option value='0'> - Select Course - </option>";
while($row = mysqli_fetch_array($result))
{
 $selected = $row['Title'] == $_REQUEST['CourseSelect'] ? "Selected" : "";
 echo "<option value='" . $row['Title'] ." '  $selected>" . $row['Title'] . "</option>";
}

echo "</select>";
echo "<input name='SubmitCourse' type='submit'>";
echo "</form>";

答案 2 :(得分:0)

试试这个:

echo "<option value='0'> - Select Course - </option>";
while($row = mysqli_fetch_array($result))
{
  $selected = $_POST['CourseSelect'] == $row['Title'] ? 'selected' : '';
  echo "<option value='{$row['Title']}' {$selected}>{$row['Title']}</option>"; 
}

答案 3 :(得分:0)

你可以这样做

echo "<form action='' method='post'>";
echo "<select name='CourseSelect'>";

if( isset($_POST['CourseSelect']) &&  $_POST['CourseSelect'] != "0")
{
    echo "<option >".$_POST['CourseSelect']."</option>";
}
else
{
     echo "<option value='0'> - Select Course - </option>";
}
while($row = mysqli_fetch_array($result))
{
 if( isset($_POST['CourseSelect']) && $_POST['CourseSelect'] != $row['Title'])
 echo "<option value='" . $row['Title'] ." '>" . $row['Title'] . "</option>";
}
echo "</select>";
echo "<input name='SubmitCourse' type='submit'>";
echo "</form>";

答案 4 :(得分:0)

PHP功能

# select box
/*
Example: 
Parameter 1:      
         $options[1] = 'Course 1'; 
         $options[2] = 'Course 2'; 
         $options[3] = 'Course 3';
Parameter 2:
         $selectedOption = 2; The dropdown need to be selected
*/
function buildOptions($options, $selectedOption)
{
   foreach ($options as $value => $text)
   {
       if ($value == $selectedOption)
       {
        $Return .='<option value="'.$value.'" selected="selected">'.stripslashes($text).'</option>';
       }
       else
       {
        $Return .='<option value="'.$value.'">'.stripslashes($text).'</option>';
       }
   }

   return $Return;

}

功能调用

$result = mysqli_query($con, "select * from course");

while ($row = mysqli_fetch_array($result))
{
 $UniqueId = $row['Title'];
 $Value    = $row['Title'];
 $optionsArray[$UniqueId] = $Value; // Store the values into an array
}

$CourseSelect = isset($_POST['CourseSelect']) ? $_POST['CourseSelect'] : '0';


echo "<form action='' method='post'>";
echo "<select name='CourseSelect'>";
echo "<option value='0'> - Select Course - </option>";
echo  buildOptions($optionsArray, $CourseSelect);
echo "</select>";
echo "<input name='SubmitCourse' type='submit'>";
echo "</form>";

备注的 您可以对所有项目使用buildOptions()来显示选择框。我多年来一直在使用它。