0

私は初心者の Web 開発者で、以前の選択に基づいてサブフィールドを動的に生成する HTML フォームを作成しようとしています。たとえば、以下のスニペットを使用して、ユーザーが「Per Center」を選択すると、フォームは中心の値に別のサブフィールドを提供します。「クライアントごと」の場合も同様に、オプションを指定します。ただし、Global にはサブフィールドは必要ありません。

<!DOCTYPE html>
<html>
    <body>
<form action="process.php" method="post"> 
    <fieldset>
      <b>Analysis Level</b>
      <select name="level"> 
        <option>Global</option>
        <option>Per Center</option>
        <option>Per Client</option>
      </select></br></br>

誰かが私を正しい方向に導くことができれば、とても感謝しています。ありがとう。

4

2 に答える 2

0

うまくいけば、これは正しい方向への一歩です

http://jsfiddle.net/k4bLC/

$(document).ready(function(){
    $('#center').hide();
    $('#client').hide();
    $('#level').change(function(){
        var value = $(this).val();
        switch(value){
            case('global'):
                $('#center').hide();
                $('#client').hide();
                break;
            case('center'):
                $('#center').show();
                $('#client').hide();
                break;
            case('client'):
                $('#center').hide();
                $('#client').show();
                break;
        }
    });
});
于 2013-09-16T21:15:14.447 に答える
0

Javascriptでそれを行う必要があります。長期的には、jQuery などを使用するのが最も簡単な方法です。

これは、次のような簡単な方法で行うことができます。

  <b>Analysis Level</b>
  <select name="level" onchange="didChangeLevel(this);"> 
    <option value="global">Global</option>
    <option value="center">Per Center</option>
    <option value="client">Per Client</option>
  </select></br></br>
  <b><span id="label"></span></b>
  <input type="text" id="extrafld" name="extra" style="display: none;" />

視覚的には、以前とほぼ同じです。ただし、選択を変更するたびに、関数が呼び出されます。次のように関数を記述します。

  • フィールドを適切に表示する
  • ラベルを設定する

    didChangeLevel(コンボ) { var 値 = コンボ.オプション[コンボ.選択インデックス].値; var field = document.getElementById('extrafld') var label = document.getElementById('label'); switch(value) { case 'global': field.style.display = 'none'; 壊す; case 'center': label.innerHTML = 'センター名:'; field.style.display = 'ブロック'; 壊す; case 'client': label.innerHTML = 'クライアント名:'; field.style.display = 'ブロック'; 壊す; } 戻る; }

PHP 側でフォームを受け取ったら、select の値を確認するだけです。$_POST['extra']「グローバル」でない場合は、余分なフィールド値を含むように探します。

于 2013-09-16T21:04:09.300 に答える