我准备了一个简单的.php文档,允许用户选择要打印的值,然后将其发布到打印它的php脚本。这是我使用的代码:
<?php
echo('<form method="post">
Select value:
<select type="integer" name="val" value= "">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<input type="submit" name="submit" value="display"/>
</form>');
$val = $_POST['val'];
echo($val);
?>
然而,我有两个问题:
首次打开时,它显示一条顽皮的行“注意:未定义的索引:第12行的C:\ ... \ test.php中的val”。我如何解决它?
当我按下显示按钮时,打印脚本工作正常,但列表值返回1而不是选择的数字。
这是我在StackOverflow上的第一篇文章,对不起,如果我违反任何规则,我就找不到解决方案。 提前感谢任何建议!
答案 0 :(得分:4)
首先,<select>
没有type="integer"
(它甚至不存在),也没有“类型”开头,所以我们只删除它。
<form method="post">
Select value:
<select name="val">
<option value="1" <?php if(isset($_POST['val']) && $_POST['val'] == 1){ echo "selected";}?>>1</option><!-- check the posted value and compare it with option value and if equal then add selected attribute-->
<option value="2" <?php if(isset($_POST['val']) && $_POST['val'] == 2){ echo "selected";}?>>2</option>
<option value="3" <?php if(isset($_POST['val']) && $_POST['val'] == 3){ echo "selected";}?>>3</option>
<option value="4" <?php if(isset($_POST['val']) && $_POST['val'] == 4){ echo "selected";}?>>4</option>
<input type="submit" name="submit" value="display"/>
</form>
<?php
if(isset($_POST['val'])){ // check value is posted and set or not
$val = $_POST['val'];
echo($val);
}
?>
或者更好: -
<form method="post">
Select value:
<select name="val">
<?php
for($i =1;$i<=4;$i++){ // start loop
if(isset($_POST['val']) && $_POST['val'] == $i){ // check posted value is set and equal to option or not if yes then add selected.
echo "<option value=$i selected>$i</option>";
}else{
echo "<option value=$i >$i</option>";
}
}
?>
</select>
<input type="submit" name="submit" value="display"/>
</form>
<?php
if(isset($_POST['val'])){ // check posted value is set or not
$val = $_POST['val'];
echo($val);
}
?>
注意: - 文件扩展名必须为.php
。