从下拉列表中选择的值到新的下拉列表中,根据第一个值具有新值

时间:2015-12-27 15:30:44

标签: javascript php html mysql ajax

我有一个选择框,如下所示。

          <td align="center">
           <select id="selectW" name="type" onChange="this.form.submit()">
             <option value="select...">select</option>
             <option value="dollars">dollars</option>
             <option value="BP">BP</option>
           </select>

我正在寻找的是根据用户选择的生成另一个选择框,其选项需要获取来自 MySQL数据库 #selectW 元素中。

我试过了:

<select id="selectW" name="type" onChange="this.form.submit()">

但是它提交了它所在的表格。

1 个答案:

答案 0 :(得分:1)

您需要了解表单的基本工作。您可以按照以下步骤获得结果。

1-让我们改变onChange事件。

<select id="selectW" name="type" onChange="showSecondDropDown()">

当用户从 #selectW 列表中选择任何值时,将会调用名为showSecondDropDown()的java脚本函数,因此现在可以添加此项功能是JS。

2-定义JS函数。

<script type="text/javascript">
    function showSecondDropDown() {
       //Now get the value of selectW.
       var userSelected = jQuery("#selectW").val();

       //Now we need to get values from MYSQL based on the "userSelected"
       // value. to do so we need to call AJAX.
       jQuery.ajax({
           url: "path/to/your/php/file/relative/to/this.php",
           data: {"userSelected": userSelected },
           success: function (resp) {
               //At this stage you will get the value
               //that your php file will generate. Then based on the format
               // That your php file is returning you can generate new
               // Select Box.
               console.debug(resp); //This will print your value in Console

               //Let's assume if your php is returning full html select text
               // then you can append that in DOM like this.
               jQuery("body").append(resp);
           }
       });
    }
</script>

3-创建PHP文件。请记住,在第2步中,url将指向此文件。

现在,在此文件中,您可以访问userSelected as

$_REQUEST["userSelected"];

使用此值从Mysql获取数据然后创建一个这样的字符串       AB

其中a和b是从MYSQL生成的。你所要做的就是回应这个字符串

echo  "<select><option> a</option><option>b</option>";