2016-08-15 70 views
1

我有一個表,我正在使用選擇選項,並根據選擇,通過下面提供的腳本,值出現在下面的單元格中。我的問題是,我怎樣才能獲得新的出現值,以通過PHP來處理它?例如,我從選擇中選擇「否」,在下一個單元格中,出現「H」,我想存儲「H」的值。任何幫助是極大的讚賞。從PHP獲得價值的PHP

部分表的代碼

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

解決方案:#1

例如,如果「否」的選擇,我想「H」存儲,腳本會這樣,

} 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>代碼包裝在文檔中,否則腳本可能會觸發並嘗試將change事件綁定到DOM中尚不存在的元素。

如果您只有一個表單在頁面上,這將工作。否則,與$('#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'),現在有兩種方法可以獲取該信息:

(1)通過張貼着的形式隱藏表單元素:$sumthin = $_POST['ynA4']

(2 )通過JavaScript中的全局變量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');