2016-08-15 299 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');