2016-08-15 23 views
1

私は選択オプションを使用しているテーブルを持っています。選択に応じて、以下のスクリプトに値が表示されます。私の質問は、どのように私はphpを介して処理するために新しい出現価値を得ることができますですか?たとえば、選択肢から「いいえ」を選択し、次のセルで「H」が表示され、「H」の値を保存します。どんな助けでも大歓迎です。テーブルのコードのPHPのdivから値を取得

パート

<td> 
    <select id="ynA4" name="ynA4"> 
     <option selected disabled hidden style="display: none" value=""></option> 
     <option value="Yes">Yes</option> 
     <option value="No">No</option> 
     <option value="TBC">TBC</option> 
     <option value="N/A">N/A</option> 
    </select> 
</td> 
<td> 
    <script> 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
      } 
     }); 
    </script> 
    <div id="hazardA4"></div> 
</td> 

、ソリューション:「いいえ」を選択して、私は「H」保存されることを希望される場合は#1

たとえば、スクリプトは次のようになりますこのように、

} else if (opt == "No") { $('#hazardA4').html('<input type="hidden" name="hazardA4" value="H">H'); 

ソリューション:#2

<script> 
    var ynA4_val; 
    $(document).ready(function(){ 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
       ynA4_val = 'H'; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
       ynA4_val = 'N/A'; 
       $('form').append('<input type="hidden" value="' +ynA4_val+ '" />'); 
      } 
     }); //END #ynA4.change 
    }); //END document.ready 
</script> 
+1

隠された入力要素を追加し、フォーム内にラップされていることを確認してください – Ghost

+0

もう少し拡張できますか?私は過去数分間の隠れた入力要素で遊んでいましたが、私はそれを動作させることができません – robins02

+1

ちょうど隠れた入力を追加し、ちょうどあなたの選択の変更ブロック内の値の属性を変更します – Ghost

答えて

1

ドキュメントに<script>コードをラップするか、スクリプトが起動して、DOMにまだ存在しない要素にchangeイベントをバインドしようとする可能性があります。

ページに1つのフォームしかない場合は、これが機能します。 $sumthin = $_POST['ynA4']

(2:フォームで掲示隠しフォーム要素を介して

(1):エルス、$('#yourFormID')

<script> 
    var ynA4_val; 
    $(document).ready(function(){ 
     $('#ynA4').change(function() { 
      opt = $(this).val(); 
      if (opt == "Yes") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "No") { 
       $('#hazardA4').html('H'); 
       ynA4_val = 'H'; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "TBC") { 
       $('#hazardA4').html(''); 
       ynA4_val = ''; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } else if (opt == "N/A") { 
       $('#hazardA4').html('N/A'); 
       ynA4_val = 'N/A'; 
       $('form').append('<input type="hidden" name="ynA4" value="' +ynA4_val+ '" />'); 
      } 
     }); //END #ynA4.change 
    }); //END document.ready 
</script> 

、その情報の取得時には二つの方法が今あることを注意して$('form')を置き換えます)グローバル変数ynA4_valを使って、AJAX経由で送信されるデータに追加することができます。

(3)更新:私は元の回答にname="varname"属性を付けることを怠ったことに注意してください。固定/更新。

+0

@ robins02この回答の更新に注意してください – gibberish

1

ソリューション

例えば@Ghost、 の提案から、「いいえ」を選択して、私は「H」は保存したい場合は、スクリプトは次のようになり、

} else if (opt == "No") { $('#hazardA4').html('<input type="hidden" name="hazardA4" value="H">H'); 
関連する問題