我有一个下拉菜单,用户可以选择一到四个数字。这是代码:
<!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'],但没有运气。任何帮助将不胜感激。
答案 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];
}