【问题标题】:drop down box using php使用php的下拉框
【发布时间】:2011-06-22 13:57:43
【问题描述】:

我有一个下拉框,它从数据库中提取值。它只会在下拉框中显示一列。如果我在下拉框中选择一列,它应该在文本框中显示其他值。

我已经在下拉框中显示了值,但我在这里被打动了。如果我在下拉框中选择一个值,则相应的值必须显示在文本框中

例如:汽车 bmw classc 125hp

如果我在下拉框中选择 bmw,我应该在文本框中获得 c 类和 125ho。

【问题讨论】:

    标签: php


    【解决方案1】:

    您可以将显示值存储在属性中 - 例如数据文本

      <select id="car">
        <option name="none" data-text="" value="">---</option>
        <option name="bmw" data-text="class c" value="bmw">bmw</option>
        <option name="ford" data-text="4 door" value="ford">ford</option>
      </select>
    
      <input type="text" id="display"/>
    

    您可以按如下方式更新文本字段(如果您使用的是 jquery)

    ​$()​.ready(function() {
    
      $("#car").bind("change", function() {
         $("#display").val($("#car :selected").attr("data-text"))
      })
    })​
    

    我在 -http://jsbin.com/ifefo4 放了一个活生生的例子

    【讨论】:

      【解决方案2】:

      PHP 在服务器端工作,它在客户端请求时处理您的网站,然后将结果页面发送给客户端。例如,您的投递箱在服务器上填充并发送到客户端。

      然而,在下拉框中选择一个项目是在客户端的浏览器中完成的。唉,服务器对此一无所知,因此您的 PHP 脚本无法对此做出反应(除非您每次用户更改保管箱项目时都强制刷新站点,这将是一个非常糟糕的概念)。

      您需要使用可在客户端运行的脚本类型,JavaScript 在这里最为常见。 JavaScript 可以对下拉框的选择做出反应,并相应地在您的文本字段中填写数据。

      但是请注意,客户端的 JavaScript 无法访问任何服务器资源,例如来自数据库的文本。这些资源必须由您的 PHP 脚本插入到 JavaScript 中,以便它们也被发送到客户端。

      【讨论】:

      • JavaScript 本身无法访问服务器资源,这正是使用 AJAX 的原因。
      【解决方案3】:

      您必须在客户端使用 Javascript。

      创建一个 javascript 数组,用文本框的值填充。 然后在 Dropbox 的 onchange 方法上,从这个数组中重新加载文本框中的内容。

      【讨论】:

      • 我该怎么做?我使用 php while 循环从 db 中提取所有内容。
      • 您必须像往常一样使用 PHP 获取数据,但在您的循环中,您必须打印浏览器可以读取的代码并从中构造 javascript 部分。在 google 或此处找到的提示:scratch99.com/2008/03/… 但也可以使用 jQuery 来查看@Joe Hanink 解决方案,将值直接打印到组合框中然后摆弄数组可能更简单。但原理都差不多
      • 我是用 php 做的,所以每个文本框都有不同的 id。
      • 不太明白,你有几个文本框?认为如果您使用 HTML 中的一些示例代码更新您的问题会很好。你看过 jsbin 中的 Joe Hanink 例子吗?用两个文本框扩展了那个例子,就像你的意思吗? jsbin.com/ifefo4/2
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 2017-08-18
      • 2011-06-03
      相关资源
      最近更新 更多