PHP/MySql 多个下拉列表不希望选项值在页面源中可见

标签 php html mysql sql

如果可能的话,我想做的是找到一种方法从页面源中“隐藏”选项值列表。

我已经成功创建了一个包含多个下拉菜单的页面(现在有 6 个,总共将超过 15 个);然而,数据库查询正在工作,下拉菜单正在工作,发布选择和结果在单独的处理页面中可见; 选项值显示在页面源代码中。

页面设计(对于本例) test.php - 包含数据库连接(稍后将其更改为单独的 include_once)、查询、选项值代码和表数据。 index.php - 仅包含调用 test.php 的 include 语句。

在浏览器中运行 test.php 会公开查询(我不想要)并加载包含 test.php 的索引会隐藏查询,但会显示我不希望有的选项。 我到处搜索(也许我没有正确地提出问题)并尝试在一个页面中运行sql并将结果发布到另一个页面,但我无法让它工作。

我想做的事情: 在单独的“函数”页面中运行 MySQL 查询,然后将输出(选择名称)调用到另一个 (HTML) 页面,并将下拉列表嵌入到表的单元格中。

问题:

  1. 是否可以隐藏index.php页面中的选项值?
  2. 这是我的设计缺陷吗?如果是,什么是更好的方法?tem
  3. 如何在一个页面中运行查询,然后将该查询的输出作为下拉菜单调用到 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/

相关文章:

php - Laravel:如何在相关模型中添加复合键(2 列或更多列)作为 $primaryKey?

php - SQL从两个表中选择行,其中一列是公共(public)的,但另一列可能为空

php - datatables.net 列对另一列进行排序

mysql - 什么是高并发的bonecp好配置

php - ID匹配的MySQL查询或在另一个表中有引用

php - 下拉列表选择值禁用

PHP:从子类访问 protected var

javascript - 与 li 中的元素交互时,如何知道我在 li 中的位置?

asp.net - Css3pie 完全适用于本地主机,但只能部分适用于远程服务器

MySQL:使用 mysqldump 转储完整数据库时存储过程、函数和触发器会发生什么