我需要在另一个页面上回显从 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 下拉列表时出现错误?

如何根据使用 jQuery/AJAX 和 PHP/MySQL 选择的第一个下拉列表填充第二个下拉列表?

如何将数据从填充的下拉 php 数据库发布到另一个脚本?

填充下拉列表 - PHP Ajax MySQL

php mysql jquery ajax 查询数据库三级联动