无法在php中将复选框值从一个页面传递到另一个页面

时间:2014-08-12 19:16:11

标签: php checkbox checked

我无法弄清楚出了什么问题。我需要传递我的复选框的值(如果选中或未选中),从page1.php传递到page2.php。只是一个复选框,而不是数组。提到我不能使用的任何形式的动作。

这是来自page1.php的代码:

<?php
   session_start();
   $checked = 0;  // not checked
   $_SESSION['first'] = $checked;
   echo "<input value='$checked'  name='name' type='checkbox'> <span class='description'> Enable this?</span>";

 ?>

这是来自page2.php的代码:

<?php   

   session_start();
   $checked = $_SESSION['first'];
   if ( $checked == 1  ) {

       echo ' checkbox checked '; 
   }
   else 

       echo ' checkbox not checked ';           

?>

2 个答案:

答案 0 :(得分:0)

$ checked的原始值:

$checked = 0;

虽然:

input value='$checked'

选中时的结果:

$_POST['name'] == '0'

然后你错误地检查它是否等于1 ...复选框的值是checked时发送的内容。因此,您应该检查“0”以便在选中时捕获。

示例:

HTML:<input type="checkbox" name="foo" value="bar" />

PHP:if ($_POST['foo'] == 'bar') { // do stuff }

然后在后续页面上显示复选框状态而不是设置其值,将其设置为已检查状态。

HTML5规范(旧版本相同):

checked = "checked" or "" (empty string) or empty

指定元素表示选定的控件。

e.g。 <input type="checkbox" name="foo" value="bar" checked />

http://www.w3.org/TR/html-markup/input.checkbox.html

答案 1 :(得分:0)

1。你应该将表单方法设置为post 2。在会话中设置复选框值,我在下面使用 3。如果你的复选框点击,它将获得值$,这是在$ checkbox变量中定义的,如果不是,则检查它将为零 4.如果检查并提交表单,则可以在会话变量中设置复选框值 你的page1.php将有这个代码

<?php  session_start();

if(isset($_POST)) { 
   $_SESSION['first'] = $_POST['name']; // checkbox name
}

   $checked = 1;
   echo "<input value='$checked'  name='name' type='checkbox'> <span class='description'> Enable this?</span>";
?>

和你的page2.php

<?php   session_start();


   $checked = $_SESSION['first'];
   if ( $checked == 1  ) {

       echo ' checkbox checked '; 
   }
   else {
       echo ' checkbox not checked ';           
  }

?>