发送表单时,复选框的已检查参数问题

时间:2018-01-07 01:47:02

标签: php html

我使用基本form结构来模拟切换开关:

    <form class="" action="" method="post">

       <input id="hola" type="checkbox"  name="probando" onchange="submit()" checked>
       <label class="switch" for="hola" >
            <span style='position:absolute;'></span>
       </label>
   </form>

使用这个小代码接收数据:

if (isset($_POST['probando'])) {
      $valor_checkbox = $_POST['probando'];
}

问题是,如果我在复选框中保留checked参数,则表单中不会收到任何内容。这是我第一次面对这个问题,我无法解决这个问题。我试过改变参数的位置,但没有任何反应。

3 个答案:

答案 0 :(得分:0)

您不能将"submit()"用作由您创建的函数,因为它是一个javascript保留字。请查看此链接以获取更多信息:javascript reserved words

您可以将Jquery与ajax一起使用,将值发送到同一表单并将其收费到div。您可以在那里检查复选框的值。这是我的工作片段:

function enviar(){

  if($("#probando").is(':checked')){
    $("#probando").val("1"); // is checked
  }else{
	  $("#probando").val("0"); // is not checked
	}
	  probando=$("#probando").val();
    
  alert(probando);
   
  $('#form, #fat, #test_check').submit(function(){
	  $.ajax({
      type: "POST",
      data: {'probando':probando},
      success: function(data) {
        $('#recibe_checkbox').html(data);
      }
    });
  });
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="test_check" id="test_check" class="" action="" method="post">

   <input id="probando" name="probando" type="checkbox" value="1" onclick="enviar()" checked>
   <label class="switch" for="hola" >
        <span style='position:absolute;'></span>
   </label>
   
   <div id="recibe_checkbox" name="recibe_checkbox">
     <?php 
       if ($_POST['probando']=1) {
         $valor_checkbox = $_POST['probando'];
         echo $valor_checkbox;
       }
     ?>
   </div>

检查ajax,因为它是一个示例,您没有发布文件名,因此您必须将ajax修改为适合您需要的urll或action属性。

希望它有所帮助!

答案 1 :(得分:-1)

为您的复选框指定一个值,确切的值将出现在let context = CGContext(data: nil, width: Int(aspectFitSize.width), height: Int(aspectFitSize.height), bitsPerComponent: bitsPerComponent, bytesPerRow: bytesPerRow, space: colorSpace, bitmapInfo: bitmapInfo.rawValue) context.scaleBy(x: -1, y: 1) // <-- this line causes the problem; it's fine without it, but I want to mirror the image... context.draw(cgImage, in: CGRect.init(origin: .zero, size: aspectFitSize)) let image = context.makeImage() 变量中:

$_POST

如果选中该复选框,那么将导致PHP变量 <form class="" action="" method="post"> <input id="hola" type="checkbox" name="probando" value="1" onchange="submit()" checked> <label class="switch" for="hola" > <span style='position:absolute;'></span> </label> 的值为1.

答案 2 :(得分:-1)

您没有收到任何内容的原因是因为未检查的复选框未发布到后端。

您目前默认情况下已选中(这是已检查的内容),并且当更改时(使用 onchange =“submit()”)进行POST,所以当您取消选中它没有要发布的数据。

如果您希望在未选中时发布值,则可以使用具有相同名称的隐藏字段,例如:

<input id="holaHidden" type="hidden" name="probando" value="no">
<input id="hola" type="checkbox"  name="probando" onchange="submit()" checked>

请注意,这只适用于PHP,因为它会为给定名称发布最后一个值。