提前感谢您对以下内容的任何建议:
我创建了一个php页面,用于将作曲家的作品添加到数据库中的CD中。它是两种形式的组合,如下所示:
第一种形式:
作曲家:[下拉列表]:选择
一些空白
第二种形式:
标题:[下拉列表]
曲目编号:[空varchar字段]
工作:[下拉列表]
其他一些领域
处理按钮
在第一个区块中选择一个名字(发布到$_SERVER["PHP_SELF"]
)后,我停留在同一页面上,该名称显示在两者之间的空白处,下拉列表中只填充了CD标题和作品选定的作曲家。
然后,我可以从列表中进行选择,并在其他字段中输入其他数据。点击进程按钮将数据从第二个块发布到另一个页面,最终将所有内容发送到MySQL数据库中的表。
之后我将自己发回header("Location: the_first_page.php")
到目前为止一直很好,但回来后我想要预选作曲家,头衔和作品。现在我被发送到一个空白页面,必须从头开始。我想我已经看到一些解决方案涉及在下拉列表中对$_POST['something']
进行<option value>
测试,但我似乎无法做到这一点。
我的问题是:有没有办法以某种方式将$_POST['Title']
和$_POST['Work']
发回第一页?或者,将这两种形式分开到单独的页面上会更好吗?
欢迎所有帮助。
答案 0 :(得分:0)
使用会话变量并为它们设置条件...参见[$ _SESSION]。
答案 1 :(得分:0)
您可以使用会话或发布数据本身。对于使用发布数据本身,发送请求的页面应该相同,并包含将处理它的脚本,如果有这样的数据:
if (!empty($_POST)) {
include "save.php";
}
// More code...
?>
<select name = "a">
<option <?php if ($_POST['a'] == "test") echo "selected"; ?> value = "test">
<option <?php if ($_POST['a'] == "testb") echo "selected"; ?> value = "testb">
</select>
当然还有很多方法,但这只是一个让你入门的简单方法。要了解的事项:您可能希望更改变量$ _POST并在使用之前将其清理干净。在这种情况下它应该没问题,但在<input type = "text" value = "<?= $_POST['b']; ?>
name =&#34; b&#34;&gt;`你有严重的安全问题。
为了消毒输入,您希望根据您的期望对其进行消毒。但是,作为一个额外的安慰,你通常想要删除看起来像<script>
,onclick =""
,' DROP TABLE users
和类似的所有东西。这不是一个容易的主题,所以我建议你阅读它,主要是XSS attacks,这与向用户显示文本有关。虽然对于这个简单的案例来说看起来似乎太多了,但它在很多情况下都很有用。