基于下拉菜单,jquery,php创建动态表单字段


Create dynamic form fields based on a dropdown , jquery ,php

我有一个下拉菜单在我的形式,这实际上有助于生成mysql数据库查询基于查询类型的飞行。例如,如果我的查询类型下拉在fetchYourDetails,然后一个文本框将出现在表单中,这将要求我的名字。一旦,我输入我的名字,并点击生成,它将框架查询和运行它在后台php。

像这样,我有大约4/5个查询类型,未来可能会增加。这里我有一个问题,我目前的实现。

我目前使用的是:一个表单,我有下拉框和所有的参数字段(隐藏)开始。现在,使用js中的onchange()函数,我将根据选中的下拉选项显示一些特定的参数行,并隐藏其余的。

这是我的HTML代码的样子:
<form>
   <table>
      <tr id='dropdown'>
         <td>
            <select id='select_options' onchange ="javascript:updateCustomQueryFields();">
               <option value='getyourdetails'></option>
               <option value='getyourbikedetails'></option>
               <!-- so on -->
            </select>
         </td>
      </tr>
      <tr style='display:none'>
         <td>
            <!-- one field -->
            <!-- create the generate option -->
         </td>
      </tr>
      <tr style='display:none'>
         <td>
            <!-- one field -->
            <!-- create the generate option -->
         </td>
      </tr>
      <!-- so on -->
   </table>
</form>

和我的onchange函数看起来像:

function updateCustomQueryFields()
{
    val=$('#select_options').val();
    //hideallfieldsfirst
    if(val=='getyourdetails')
    {
        //show one field
    }
    else if(val=='getyourbikedetails')
    {
        //show one field
    }
}

到目前为止还不错,现在,当我单击生成选项时,它将执行查询并从db获取数据,并将其显示在表单下面的结果div中。

因此,在显示结果的同时,我必须隐藏一些字段,并根据控制器中设置的参数在视图中显示其他字段。因此,当我们添加更多参数时,if-else语句的序列也可能增加。

所以我想要的是一些机制,我们将在飞行中生成参数字段,例如,如果查询类型是'getyourdetails',只有名称字段应该被创建,其余的所有字段应该在后端onchange函数中删除。

那么如何使用jquery实现呢?它是实现我想要的场景的合适方法吗?我必须记住一旦调用在获取结果后从控制器返回我的参数字段的推进。

我不确定我是否理解你的问题,但至少我对你的请求的了解说,要制作这些类型的表单,最好使用jQuery的removeappend函数。您可以动态地创建任何控件,并通过为它们设置的ID将它们置于控制之下。这就像喝一杯水一样简单!

删除附加

如果我回答错了请纠正我