【问题标题】:Dynamic html/javascript drop down list populated from MYSQL using PHP使用 PHP 从 MYSQL 填充的动态 html/javascript 下拉列表
【发布时间】:2011-03-17 11:00:25
【问题描述】:

我想我一定遗漏了一些非常简单的东西(如果我遗漏了,请道歉)。

我有一个包含 javescript 的 html 文档,在该 html 文档中,我想创建一个下拉列表,其值是从 mysql 查询的结果中自动填充的。

我猜我需要运行一个 php 脚本来从数据库中获取信息,但是如何将这些信息放入下拉列表对我来说是个谜。

请有人指点我正确的方向 - 也许是有人已经这样做的例子。

我不能只用 PHP 编写下拉菜单,因为这意味着离开我拥有所有其他内容的 html 页面。

非常感谢,

罗伯。

【问题讨论】:

  • “我不能只用 PHP 编写下拉菜单,因为这意味着离开我拥有所有其他内容的 html 页面。”对不起,你能再解释一下吗?你的 php 代码应该没有理由让你离开它所在的 html 页面。我声称您当然可以使用 php 填充您的下拉列表(这似乎比使用 JavaScript 简单得多)。
  • ..这一切都非常混乱。我已经编写(拼凑在一起阅读)一个 html 页面,其中包含许多 Javascript 函数,它们以某种方式完成了它们应该做的事情 - 使用谷歌地图 API 生成谷歌地图。我想要做的是在同一页面上生成下拉列表,这样当用户从动态创建的下拉列表中选择一个项目时,它会启动一个 javascript 函数来使用新信息更改地图(来自下拉列表) ,并且该 html 页面被称为我的 Joomla 中的包装项目! CMS。所以,正如我所说,这一切都非常非常混乱,而且我不是程序员。再次感谢。

标签: php javascript mysql html


【解决方案1】:

这是一个非常广泛的问题,所以我可以给你一个广泛的答案。简单的指南。

你有一些选择:

将 PHP 放入 HTML 中

  • 将您的 .html 重命名为 .php 或更改您的网络服务器设置(如果您使用 Apache,可能通过 .htaccess)让 php 处理 .html 文件
  • 将类似这样的内容放入 HTML 代码的适当位置:

xy.php/html

<select name="fos">
<?php
  //php code to get data from mysql
  //foreach/while to iterate through elements
    echo '<option value="'.$key.'">'.$value.'</option>';
  //end of foreach/while
?>
</select>

使用 Ajax 加载数据

  • 保持 HTML 不变
  • 编写一个PHP脚本来输出下拉菜单
  • 用Ajax编写Javascript获取PHP脚本的输出,然后将其插入到DOM的适当位置
  • 缺点是没有 JS 的人看不到下拉菜单

编辑:或采用 Haza 建议的方法

无论您选择哪一个,我都已为您提供了用于搜索或询问更多问题的关键字

【讨论】:

  • 谢谢,我认为我需要使用第二种方法(无论如何,如果没有启用 javascript,就无法查看页面的其余部分,所以没关系)。您能否指出我可以从代码中抄袭的任何示例 - 我正在搞砸这个,我通过示例了解更多信息。我目前正在阅读一些教程,但并不真正了解 DOM 的使用。我可以在 javascript 函数中轻松地从 html doc 调用 .php,但它会将信息返回到 javascript / html 并从我坚持的那个 php 结果构建下拉列表。再次感谢。罗伯。
  • 要“调用” PHP,您使用 Ajax(XMLHttpRequest 对象),您可以轻松检索 PHP 脚本的输出(这将是下拉菜单的 HTML)。然后你甚至可以使用innerHTML 插入它。例如,在这里了解这些技术:ajaxtutorial.net。你也可以使用 jQuery,它对 Ajax 有很大帮助。
  • 另外,如果您对此处的任何答案感到满意,请不要忘记用勾选标记接受您最喜欢的答案。
  • 好的,这就是我现在已经走了多远(感谢到目前为止的所有帮助!)。我有一个 .php 可以根据需要生成下拉列表。代码的最后一点如下所示。 `
  • 我想这值得它自己的问题。描述你到目前为止所做的一切,有人会帮助你。现在我可以说,您所要做的就是编写一个调用 php 并获取其输出的 Javascript 函数(您使用 Ajax 执行此操作)。然后你可以将它插入到 HTML 中(Javascript DOM 插入)。
【解决方案2】:

如果你在谈论一些花哨的 Javascript 下拉菜单列表,有两个部分:

  • 获取您需要显示给用户的数据,并以已知结构(通常是一些&lt;ul&gt;&lt;li&gt; ...)将它们打印在html中。这只会创建一个列表,这就是菜单通常应该是的。

  • 使用一些 javascript 将这个简单的列表转换为您的下拉菜单。

所以,首先你需要在你的代码中找到它的一部分是简单的列表,使用相同的结构将你的数据添加到其中,然后你的 js 脚本将能够对其进行转换。

【讨论】:

    【解决方案3】:

    欢迎来到 Web 开发的世界。我亲爱的首先尝试做一些搜索。 下面是一些代码,您可以通过它来完成您的任务

    <select name='myselect'>
    <?php
    $q="select * from $table";
    $rs=mysql_query($q);
    if($rs && mysql_num_rows($rs))
    {
      while($rd=mysql_fetch_object($rs))
      { 
       echo("<option value='$rd->id'>$rd->name</option>");
      }
    }
    ?>
    </select> 
    

    【讨论】:

    • @bazmegakapa 谢谢。你能指导我将来如何自己完成这个/
    • 编写您的代码,突出显示它并使用编辑器工具栏上的{} 按钮或Ctrl+K。无需转义&lt; 或添加pre 标签。
    猜你喜欢
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2011-12-09
    • 2011-07-17
    • 1970-01-01
    相关资源
    最近更新 更多