我需要回显一个下拉选项,它是从另一个页面上的mysql填充的

时间:2013-01-24 21:17:01

标签: php jquery mysql ajax drop-down-menu

我有三个下拉菜单,其中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" alt="The Global Dollar" 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>

任何人都知道我该怎么做?对不起,如果我不清楚,很难形容。 提前谢谢

2 个答案:

答案 0 :(得分:0)

以下是Web客户端可以将信息传递到下一页加载的一些方法:

  • 将信息放在URL的查询字符串中(基本上当您通过GET提交表单时会发生什么)。下一页可以解析查询字符串。
  • 当用户转到下一页时,将信息作为POST数据发送到服务器。服务器可以在交付时将信息写入下一页。
  • 您可以通过使用PHP sessions存储信息来构建先前的想法。即使用户离开页面并返回,服务器也会记住用户在一段时间内的选择。
  • 您可以将信息存储在Cookie中。如果需要,可以使用JavaScript完全设置和阅读Cookie。
  • HTML5本地存储可能有点过分,但是如果你最终会构建复杂的东西....

答案 1 :(得分:0)

您在这里谈论动态下拉功能。通过从MySQL获取选项,我找到了一个源代码。

可能你可以参考这个并将其整理出来。

Dynamic Dropdown Powered by MySQL