如果未选中复选框,则不应取其值,不应显示错误

时间:2013-12-29 18:11:09

标签: javascript php html

我有一个编码。在该复选框可能会或可能不会被选中,如果选中它,如果未选中该复选框则没有错误,则会发生错误。任何人都可以为此解决问题 这是我的复选框html代码

<input name="cb" type="checkbox" id="set_2" value="20"/> Project<td><i class = "pro_hidden pro_option_set_2"> Included</i></td>

如果选中该复选框,则取值20,如果未选中,则不会显示该值,但会显示Notice: Undefined index: cb如果选中该复选框,则还包含javascript。如果没有检查它什么都不显示... javascript编码这个

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">/script>
    <script>
  $('.pro_hidden').css({
'display': 'none'
 });

 $(':checkbox').change(function() {
var option = 'pro_option_' + $(this).attr('id');
if ($('.' + option).css('display') == 'none') {
    $('.' + option).fadeIn();
}
else {
    $('.' + option).fadeOut();
}
});
</script>

我正在尝试添加值:

<tr>
<td>duration</td>

<td><input type="text" name="duration" values=""> 

</td>
</tr>

<tr>
   <td><input type="radio" name="rd" value="2" required>2hrs</td>
   <td><input type="radio" name="rd" value="4" required>4hrs</td>
</tr>

 <tr>   
   <td>
<input name="cb" type="checkbox" id="set_2" value="20"> Project<td><i class = "pro_hidden pro_option_set_2">      20hrs Included</i></td>
    </td>

这是我的整个代码,如果提交此表单,则转到下一页并使用php

添加值
 <?php
 $du=$_POST['duration'];
 $cb=$_POST['cb'];
 $c=$_POST['rd'];
 $sum=($du+$cb)/$c;
 echo $sum;
 ?>

如果未选中复选框,则此处显示错误...如果未选中该复选框,则如何进行编码?

2 个答案:

答案 0 :(得分:0)

如果未选中该复选框,则不传递任何值。因此,在复选框之前,您必须使用相同的名称和默认值。

<input name="cb" value="default" type="hidden">
<input name="cb" type="checkbox" id="set_2" value="20">

答案 1 :(得分:0)

如果未选中复选框,则不会将其提交给服务器,因此在PHP中未定义。在访问任何isset$_GET变量之前,您必须使用$_POST函数。

而不是这个

 $du = $_POST['duration'];
 $cb = $_POST['cb'];
 $c  = $_POST['rd'];

你应该这样做

if(isset($_POST['duration']))
      $du = $_POST['duration'];

if(isset($_POST['cb']))
      $cb = $_POST['cb'];

if(isset($_POST['rd']))
      $c = $_POST['rd'];

有关详细信息,请参阅documentation