刷新页面后,具有整数值的下拉菜单不会保持选中状态

时间:2015-06-10 17:12:14

标签: php html

我有一个下拉菜单,用户可以选择一到四个数字。这是代码:

    <!DOCTYPE html>
    <html>
    <body>
    <?php
    if (isset($_POST['Submit1'])) {
        $SiteNumber = $_POST['SN'];
        $fileName = 'test.txt';
        $lines = file($fileName);
        $lines[0]="Site_number= ". $SiteNumber;
        file_put_contents($fileName, implode($lines));
    } else {
        $fileName = 'test.txt';

        $lines = file($fileName);

        $SiteNumber=explode(" ",$lines[0]);
        $SiteNumber=$SiteNumber[1];
    }
    ?>
    <form action="test.php" name ="form1" Method ="POST">
    Site Number:
    <select selected="selected" name="SN" VALUE="<?PHP print $SiteNumber ; ?>">

         <?php $attr= 'selected="selected"'; ?>

         <option VALUE="1"  <?php echo $SiteNumber == '1' ? $attr : '';  ?>>1</option>
         <option VALUE="2"  <?php echo $SiteNumber== '2' ?   $attr : ''; ?>>2</option>
         <option VALUE="3"  <?php echo $SiteNumber == '3' ? $attr : ''; ?>>3</option>
         <option VALUE="4"  <?php echo $SiteNumber== '4' ? $attr : ''; ?>>4</option>

    </select>

    <Input Type = "Submit" Name ="Submit1" Value = "Save Parameters">
    </form>
    </body>
</html>

问题是当我刷新页面时所选的数字会回到1,尽管它应该显示所选的值并从文本文件中读取它。我在日志中得到的错误是: 未定义的变量:SiteNumber

所以我尝试过($)$ _POST ['SN'],但没有运气。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您必须将下拉列表更改为

Site Number: 
<select name="SN">
 <?php $attr= 'selected="selected"'; ?>

 <option VALUE="1"  <?php echo $SiteNumber == '1' ? $attr : '';  ?>>1</option>
 <option VALUE="2"  <?php echo $SiteNumber== '2' ?   $attr : ''; ?>>2</option>
 <option VALUE="3"  <?php echo $SiteNumber == '3' ? $attr : ''; ?>>3</option>
 <option VALUE="4"  <?php echo $SiteNumber== '4' ? $attr : ''; ?>>4</option>

</select>

答案 1 :(得分:0)

查看此行$lines[0]="Site_number= ". $SiteNumber;

我认为这是资源而不是数组。您可能必须先将其设置为数组,然后才能为其赋值。尝试添加此行而不是

$line=array();
$line[0]="Site_number= ". $SiteNumber;

哦,我尝试运行你的代码基本上是如何拥有它的,并让它工作 - 我看到了来自$SiteNumber = $_POST['SN'];

的价值

这对我有用:

if (isset($_POST['Submit1'])) {
    $SiteNumber = $_POST['SN'];
    $fileName = 'test.txt';
    $lines = fopen($fileName, "w");
    $line=array();
    $line[0]="site number= ".$SiteNumber;

    fwrite($lines, implode($line));
    fclose($lines);

} 别的{

    $fileName = 'test.txt';

    $lines = fopen($fileName, "r");
    $SiteNumber = fgets($lines);

    $SiteNumber=explode(" ",$SiteNumber);
    $SiteNumber = $SiteNumber[2];

}