如果可能的话,我想做的是找到一种方法从页面源中“隐藏”选项值列表。
我已经成功创建了一个包含多个下拉菜单的页面(现在有 6 个,总共将超过 15 个);然而,数据库查询正在工作,下拉菜单正在工作,发布选择和结果在单独的处理页面中可见; 选项值显示在页面源代码中。
页面设计(对于本例) test.php - 包含数据库连接(稍后将其更改为单独的 include_once)、查询、选项值代码和表数据。 index.php - 仅包含调用 test.php 的 include 语句。
在浏览器中运行 test.php 会公开查询(我不想要)并加载包含 test.php 的索引会隐藏查询,但会显示我不希望有的选项。 我到处搜索(也许我没有正确地提出问题)并尝试在一个页面中运行sql并将结果发布到另一个页面,但我无法让它工作。
我想做的事情: 在单独的“函数”页面中运行 MySQL 查询,然后将输出(选择名称)调用到另一个 (HTML) 页面,并将下拉列表嵌入到表的单元格中。
问题:
- 是否可以隐藏index.php页面中的选项值?
- 这是我的设计缺陷吗?如果是,什么是更好的方法?tem
- 如何在一个页面中运行查询,然后将该查询的输出作为下拉菜单调用到 HTML 页面中?
test.php(简化示例)
<!--mo-->
<td colspan="2"><div align="right"><font face="Arial, Helvetica, sans-serif">
<?php
$query = "SELECT date_code_mo, date_code_mo_desc FROM tbl_gm_assy_date_code_mo ORDER BY date_code_mo ASC";
echo '<select name="date_mo">';
if ($result = mysqli_query($link, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
echo '<option value="' . $row['date_code_mo_desc'] . '">' . $row['date_code_mo'] . '</option>';
}
mysqli_free_result($result);
}
echo '</select>';
?>
</font></div></td>
<!--week-->
<td colspan="2"><div align="left"><font face="Arial, Helvetica, sans-serif">
<?php
$query = "SELECT date_code_wk, date_code_wk_desc FROM tbl_gm_assy_date_code_wk ORDER BY date_code_wk ASC";
echo '<select name="date_wk">';
if ($result = mysqli_query($link, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
echo '<option value="' . $row['date_code_wk_desc'] . '">' . $row['date_code_wk'] . '</option>';
}
mysqli_free_result($result);
}
echo '</select>';
?>
index.php 源(未显示表定义)
<select name="date_mo"><option value="Janurary">01</option><option value="Feburary">02</option><option value="March">03</option><option value="April">04</option><option value="May">05</option><option value="June">06</option><option value="July">07</option><option value="August">08</option><option value="September">09</option><option value="October">10</option><option value="November">11</option><option value="December">12</option></select>
<select name="date_wk"><option value="First">A</option><option value="Second">B</option><option value="Third">C</option><option value="Fourth">D</option><option value="Fifth">E</option></select>
我已经使用了这里提供的很多示例来实现这一点,我确信无论如何,这都是一些小事情被遗漏了,谢谢大家!
最佳答案
我不确定我是否理解你的问题..
1) 我不明白为什么您担心页面源中的选项值,它们只是发送到服务器的值。它们在哪里被解释并获得其含义。您可以将它们更改为您想要的任何内容。只有客户端代码(选项标 checkout 现的地方)对用户可见,服务器端代码对用户不可见。 --> 用户可以看到选项标签的值,但不知道您将在服务器端使用它们做什么。
2) 参见 1)
3) 提交表单时,值将发送到使用 action 属性指定的 url:
<form action="evaluate.php" method="post">
...
</form>
evaluate.php 的输出将发送到客户端 --> 这是用户将看到的下一页。对于形成下拉菜单的语法,请在此处检查: Pre-filling select tags from array
要检索发送的值,请查看:
$_GET['varname'] 或 $_POST['varname'] 数组。根据表单标记中指定的方法,发送的值存储在此处。
其中 varname = 表单元素的名称属性。根据表单元素的类型,提取值或多或少是微不足道的。周围有很多教程并且很容易找到。
我还建议您查看以下主题: How can I prevent SQL injection in PHP?
关于PHP/MySql 多个下拉列表不希望选项值在页面源中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131487/