2012-01-05 20 views
0

フォームにドロップダウンがあり、実際にクエリタイプに基づいてオンザフライでmysql dbクエリを生成するのに役立ちます。 たとえば、fetchYourDetailsのドロップダウンにあるmy querytypeを入力すると、フォームにテキストボックスが表示され、私の名前を尋ねます。一度、私は自分の名前を入力してを生成するとを生成すると、クエリをフレーム化し、バックグラウンドphpで実行します。ドロップダウン、jquery、phpに基づいて動的フォームフィールドを作成

このように私は約4/5のクエリタイプを持ち、今後増加する可能性があります。ここで私は現在の実装に問題があります。

私が現在使用しているのは、ドロップダウンとすべてのパラメータフィールド(非表示)を持つフォームです。今、私のjsでonchange()関数を使用して、選択したドロップダウンオプションに基づいていくつかの特定のパラメータ行を表示し、残りを非表示にします。

<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 
    } 
} 

とても良い、私のHTMLコードはどのように見えるか

はそうここにありますクエリを実行し、dbからデータを取得し、フォームの下のresults divに表示します。

結果を表示するときに、コントローラに設定されたパラメータに基づいて、一部のフィールドを非表示にして他のビューを表示する必要があります。 したがって、一連のif-elseステートメントは、さらにいくつかのパラメーターを追加するときにも同様に増加する可能性があります。

私が望むのは、クエリタイプが「getyourdetails」の場合、名前フィールドのみを作成し、残りのすべてのフィールドを削除する必要があります。バックエンドonchange機能

jqueryを使ってどのように達成できますか?私が望むシナリオを実装するのは適切な方法論になりますか?私は、結果をフェッチした後にコールがコントローラから戻ってくると、自分のパラメータフィールドを推測することを覚えておく必要があります。

答えて

0

私はあなたの質問を理解しているとは確信していませんが、少なくともあなたの要求に関する私の知識は、removeappendのjQueryの機能を使用する方が良いでしょう。任意のコントロールを動的に作成し、設定したIDによって制御下に設定することができます。一杯の水を飲むのは簡単です!私の答えが間違っている場合

RemoveAppend

は私を修正します。

関連する問題