我正在尝试创建一个包含下拉列表的表单。提交时,我尝试保存“选定”选项,以便在将来的页面加载时,该值默认为“选定”。
大致如下:
<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 数据库来保存所选选项。我只是不确定该怎么做。
如有任何帮助,我们将不胜感激。
干杯
最佳答案
"I assume the best way to achieve this would be with a MySQL database to save the selected option."
答案是"is"。
您首先需要做的是将给定行的相应数据保存在数据库中。
一个例子是,并对其他值应用相同的方法:
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))
下拉列表的名称属性可以在使用 POST 或 GET 方法的表单中使用,选择权在您。
您需要选择您喜欢的 MySQL API,但请记住 MySQL_*
从 PHP 7.0 开始,functions/API 已被弃用并删除
脚注:
我相信我已经给了你足够的东西来让你开始。我通常不会回答此类问题,因为它们相当广泛,但我发现如果我能提供帮助,那就太好了。
- 它也太长,无法作为评论发布。
您还应该阅读有关使用准备好的语句的信息,因为您似乎是使用数据库的新手。
引用文献:
- http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
- http://php.net/manual/en/pdo.prepared-statements.php
- https://en.wikipedia.org/wiki/Prepared_statement
其他引用:
关于php - 保存并更新下拉菜单 "selected"选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39558921/