【发布时间】:2010-01-03 20:12:40
【问题描述】:
我有一个 php 页面,用户可以在其中将数据输入到表单内的字段中。 该表单还具有图片上传实用程序。 每次上传新图片时都会刷新此页面,因此要“记住”用户已经填写的值,我有以下代码:
<input type="text" value="<?php echo @$_POST['name'];?>">
这不适用于下拉列表或收音机...
我有一个来自上一个 Q 的解决方案,但这意味着我必须在 PHP 中再次创建所有下拉列表,当它们现在是 HTML 时,并且下拉列表中有很多选项。
还有其他方法吗?
这是第一个解决方案:
$color = $_POST["colors"];
$colors = array("red","green","blue");
<select name="colors">
<?php foreach ($colors as $option) { ?>
<option<?php print ($option == $color) ? " selected" : ""; ?>>
<?php print $option; ?>
</option>
<?php } ?>
</select>
谢谢
【问题讨论】:
-
注意:不要像这样使用
$_POST['name']而不进行任何消毒。恶意用户可以通过输入"><script>...</script>之类的内容轻松注入一段 JavaScript。使用类似htmlspecialchars($_POST['name']). -
嗯?页面刷新了吗?为什么不不刷新整个页面,直接用AJAX添加新图片?
-
@Mark 因为这会引入对 JS 的不必要依赖:icant.co.uk/articles/pragmatic-progressive-enhancement/#build
标签: php javascript html