0

こんにちは、適切なボタンを押すと表示/非表示になるいくつかの異なるフォームを含むページがあります。

現在、データベースからphpによって取得されるいくつかのフィールドを含める必要がありますが、問題は、私のjqueryコードが後で宣言されるフィールドを非表示にできないことです。

私のコードの例を次に示します。

<form action="controlPanel.php" method="post">
    <input class="inputFields" type="text" name="fileName" />
    <input class="inputFields" type="text" name="fname" />
    <select class="styled-select" id="nameDropdown" name='nameDropdown'>
    <option value="0"><span class="formatFreeTxt">Choose a name</span></option>
    <?php
        foreach ($GLOBALS['myDB']->getList('2') as $i) {
            echo "<option value='" . $i['email'] . "'>" . $i['fname'] . " " . $i['lname'] . "</option>";
         }
    ?>
    </select>
    <input class="inputFields" type="submit" name="textForm" />
</form>

そして、上記の下の div に別のフォームがあります。そのように:

<form action="controlPanel.php" method="post">
    <input class="inputFields" type="text" name="textName" />
    <input class="inputFields" type="text" name="lname" />
    <select class="styled-select" id="nameDropdown" name='nameDropdown'>
    <option value="0"><span class="formatFreeTxt">Choose a name</span></option>
    <?php
        foreach ($GLOBALS['myDB']->getList('2') as $i) {
            echo "<option value='" . $i['email'] . "'>" . $i['fname'] . " " . $i['lname'] . "</option>";
         }
    ?>
    </select>
    <input class="inputFields" type="submit" name="nextTxtForm" />
</form>

私のJQueryコードは次のとおりです。

function showHideBenef()
 {
       if($('#nameDropdown').is(':visible'))
       {
          $('#nameDropdown').fadeOut();
          $('#nameTable').fadeIn();
          $('#toggleButton').attr('value', 'Choose from existing ones');
          $('#chooseTxt').html('New Beneficiary Form');

       }
       else
       {
           $('#nameDropdown').fadeIn();
           $('#nameTable').fadeOut();
           $('#toggleButton').attr('value', 'OR Add a new one');
       }

  }

各フィールドの名前を変更せずにこれを機能させて、さまざまなフィールド名をすべてチェックする必要なく実際にさまざまな投稿をキャッチできるようにする方法はありますか?

4

6 に答える 6

1

ここでの問題は、同じ ID と名前を持つ複数の入力要素があることです。これは良くありません。

それらを配列として持たないのはなぜですか?

したがって、form1 の要素は次のようになります。

<input type="text" name="firstform[fname]" id="firstform_fname"/>

form2 の要素は次のようになります。

<input type="text" name="secondform[fname]" id="secondform_fname"/>

PHP スクリプトでは、$_POST['firstform'] および $_POST['secondform'] からフォームの値を取得できます。

于 2012-08-04T14:31:15.303 に答える
0

各入力に ID 属性を与え、jQuery を使用して ID に基づいて表示/非表示を切り替えることができます。

id="textFormFileName" と id="nextTxtFormFileName" などの入力を区別できるように、ID にプレフィックスを使用します。

于 2012-08-04T14:32:52.230 に答える
0

おそらく最適な解決策ではありませんが、最終的にすべてを div 要素にラップしてから、JQuery を使用して div 全体を非表示にします...そのようにして、異なる形式で重複した名前を保持し続けることができ、jquery はあなたが与える限り正常に動作しますdivは別のIDです..

回答ありがとうございます。

于 2012-08-04T16:01:01.850 に答える
0

id属性を設定すると思います

このような

<form action="controlPanel.php" method="post"  id="form1">

また

<form action="controlPanel.php" method="post" id="form2">
于 2012-08-04T14:29:21.793 に答える