我正在尝试创建包含下拉列表的表单。提交时,我试图保存"选择"选项,以便在将来的页面加载时,此值被选中"默认情况下。
有些事情:
<select name="people">
<option value="person-1" <?php if($selected=="person-1") echo 'selected="selected"'; ?> >Person 1</option>
<option value="person-2" <?php if($selected=="person-2") echo 'selected="selected"'; ?> >Person 2</option>
<option value="person-3" <?php if($selected=="person-3") echo 'selected="selected"'; ?> >Person 3</option>
</select>
我认为实现这一目标的最佳方法是使用MySQL数据库来保存所选选项。我只是不确定如何解决这个问题。
任何帮助都将不胜感激。
干杯
答案 0 :(得分:2)
“我认为实现这一目标的最佳方法是使用MySQL数据库保存所选选项。”
答案是肯定的。
首先需要做的是将相应数据保存在给定行的数据库中。
这样的一个例子是,并将其应用于其他值:
INSERT INTO TABLE (col) VALUES ('person-1')
然后在SELECT中检索它,例如:
SELECT col, col_2, col_3 FROM TABLE
取决于您需要使用/查询的列数。
即。使用while
循环获取三元运算符并获取成功结果。
echo '
<select name="people">
<option value="person-1" '.($row["col"] == "person-1" ? "selected" : "") .'>Person 1</option>
<option value="person-2" '.($row["col"] == "person-2" ? "selected" : "") .'>Person 2</option>
<option value="person-3" '.($row["col"] == "person-3" ? "selected" : "") .'>Person 3</option>
</select>
';
或者,您可以在<options>
中使用您目前使用的内容。你需要在循环中使用$selected
变量,但我发现三元运算符更容易用于这样的情况。
while
循环的示例,我在这里使用了MySQLi_ API:
while ($row = mysqli_fetch_array($query))
下拉列表的name属性可以使用POST或GET方法在表单中使用,选择权在您手中。
您需要选择您喜欢的MySQL API,但请记住,自PHP 7.0起,MySQL_*
函数/ API已被弃用和删除
脚注:
我相信我已经给了你足够的帮助你。我通常不会对这些问题给出答案,因为它们相当广泛,但我发现如果我可以提供帮助,那就太棒了。
您还应该阅读使用预准备语句,因为您似乎是处理数据库的新手。
参考文献:
其他参考资料: