我想制作一个代码,演示如果我选择任何选项值并按下提交按钮,我选择的值应该在选项框中看到。
代码是;
<?php
$myfile = fopen("cars_lab5.txt", "r") or die("Unable to open file!");
?>
这是打开文件,因为我从文件中提取项目。
<?php
$index = 0;
$val = $_GET['car'];
//$selection = "";
for ($index=0 ; $index < 5 ; $index++){
$num = 0;
$line = fgets($myfile) . "<br>";
$slide = explode("|",$line);
//echo '<option value="' . $index . '">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros';
if ($val==0){
echo '<option value="' . $index . '"' . $selection . ' selected">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros'; }
else if ($val==1){
echo '<option value="' . $index . '"' . $selection . ' selected">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros'; }
else if ($val==2){
echo '<option value="' . $index . '"' . $selection . ' selected">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros'; }
else if ($val==3){
echo '<option value="' . $index . '"' . $selection . ' selected">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros'; }
else if ($val==4){
echo '<option value="' . $index . '"' . $selection . ' selected">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros'; }
}
fclose($myfile);
?>
当我使用此代码时,一切正常但如果我选择第三个选项并按下提交按钮,则再次在选项框中看到第一个项目而不是我选择的项目。
答案 0 :(得分:1)
您已使用“已选择”标记设置所有选项,因此浏览器会默认显示最后一个选项。
您需要从echo语句中删除'selected'字符串并在某处配置$ selection var:
$selection=($index==$val?'selected':null)
根本不需要if / else语句。
所以你只需要一行:
echo '<option value="' . $index . '"' . $selection . '">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros';
编辑包括根据评论的示例 您的示例代码如下所示:
<?php
$index = 0;
$val = $_GET['car'];
//$selection = "";
for ($index=0 ; $index < 5 ; $index++){
$num = 0;
$line = fgets($myfile) . "<br>";
$slide = explode("|",$line);
$selection=($index==$val?'selected':null);
echo '<option value="' . $index . '"' . $selection . '">' . $slide[$num] . ' - ' . $slide[num+1] . ' euros';
}
fclose($myfile);
?>