我需要在另一个页面上回显从 mysql 填充的下拉选择
Posted
技术标签:
【中文标题】我需要在另一个页面上回显从 mysql 填充的下拉选择【英文标题】:i need to echo a dropdown selection which is populated from mysql on another page 【发布时间】:2013-01-08 18:37:48 【问题描述】:我有三个下拉菜单,其中 2 个是从 mysql 填充的,因此根据第一个中选择的内容,定义第二个中填充的内容,然后是第三个。然而。我需要用户选择 3 个选项,并将它们带到下一页并回显它们,然后第三页也是如此,我需要获取第一页的答案,第二页,并在第三页上回显它们。等等。到目前为止,这是我的代码:
<?php
``if (@$_REQUEST['ajax'])
// connect to local database 'test' on localhost
$link = mysql_connect('localhost', 'user', 'pass');
if ($link == false)
trigger_error('Connect failed - ' . mysql_error(), E_USER_ERROR);
$connected = mysql_select_db('test', $link);
if ($connected)
$results = mysql_query('select * from test.select_chain where category="' . strtolower(mysql_real_escape_string(strip_tags($_REQUEST['category']))) . '"');
$json = array();
while (is_resource($results) && $row = mysql_fetch_object($results))
//$json[] = '"id" : "' . $row->id . '", "label" : "' . $row->label . '"';
$json[] = '"' . $row->label . '"';
echo '[' . implode(',', $json) . ']';
die(); // filthy exit, but does fine for our example.
else
user_error("Failed to select the database");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Select Chain</title>
<style type="text/css" media="screen">
<!--
BODY margin: 10px; padding: 0; font: 1em "Trebuchet MS", verdana, arial, sans-serif;
BODY font-size: 100%;
H1 margin-bottom: 2px; font-family: Garamond, "Times New Roman", Times, Serif;
DIV.selHolder float: left; border: 3px solid #ccc; margin: 10px; padding: 5px;
TEXTAREA width: 80%;
FIELDSET border: 1px solid #ccc; padding: 1em; margin: 0;
LEGEND color: #ccc; font-size: 120%;
INPUT, TEXTAREA font-family: Arial, verdana; font-size: 125%; padding: 7px; border: 1px solid #999;
LABEL display: block; margin-top: 10px;
IMG margin: 5px;
SELECT margin: 10px; width: 200px;
-->
</style>
<script src="jquery.js" type="text/javascript"></script>
<script src="select-chain.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
<!--
$(function ()
var cat = $('#categorySelect');
var el = $('#elementSelect');
var attr = $('#attributeSelect');
el.selectChain(
target: attr,
url: 'index.php',
data: ajax: true, anotherval: "anotherAction"
);
// note that we're assigning in reverse order
// to allow the chaining change trigger to work
cat.selectChain(
target: el,
url: 'index.php',
data: ajax: true
).trigger('change');
);
//-->
</script>
</head>
<center><img src="tgd.png" href="index.php"></center>
<body id="page">
<div id="doc">
<center><h1>Country</h1></center>
<div class="selHolder">
<h2>Continent</h2>
<select id="categorySelect" name="category" size="5">
<option>Africa</option>
<option>America</option>
<option>Antarctica</option>
<option>Asia</option>
<option>Australia</option>
<option>Europe</option>
</select>
</div>
<div class="selHolder">
<h2>Country</h2>
<select id="elementSelect" name="category" size="5">
<option>[none selected]</option>
</select>
</div>
<div class="selHolder">
<h2>City</h2>
<select id="attributeSelect" name="category" size="5">
<option>[none selected]</option>
</select>
</div>
</div>
<a href="../secondpage">Next Page </a>
</body>
</html>
有人知道我该怎么做吗?抱歉,如果我不清楚,很难描述。 提前致谢
【问题讨论】:
【参考方案1】:以下是 Web 客户端可以将信息传递到加载的下一页的一些方法:
将信息放入 URL 的查询字符串中(基本上是通过 GET 提交表单时发生的情况)。下一页可以解析查询字符串。 当用户转到下一页时,将信息作为 POST 数据发送到服务器。服务器可以在传递信息时将信息写入下一页。 您可以通过使用PHP sessions 存储信息来构建先前的想法。即使用户离开页面并返回,服务器也会在一段时间内记住用户的选择。 您可以将信息存储在 cookie 中。如果您愿意,可以完全使用 JavaScript 设置和读取 Cookie。 HTML5 本地存储可能有点矫枉过正,但如果您最终要构建复杂的东西......【讨论】:
它会非常复杂,我喜欢使用最后 3 个中的任何一个,你能帮我解释一下吗?我不是一个经验丰富的程序员?到目前为止,谢谢! 我建议通读 PHP 的会话文档。它使您可以轻松地存储用户与服务器交互的数据,而无需编写大量代码。正如介绍页面所说:会话支持允许您将请求之间的数据存储在 $_SESSION 超全局数组中。当访问者访问您的站点时,PHP 将自动检查……或根据您的请求……是否已随请求发送了特定的会话 ID。如果是这种情况,则会重新创建先前保存的环境。【参考方案2】:您在这里谈论的是动态下拉功能。通过从 MySQL 中获取选项,我为你找到了一个来源。
也许你可以参考这个并整理出来。
Dynamic Dropdown Powered by MySQL
【讨论】:
以上是关于我需要在另一个页面上回显从 mysql 填充的下拉选择的主要内容,如果未能解决你的问题,请参考以下文章
尝试用 Java 中的 Mysql 数据填充 HTML 下拉列表时出现错误?