我无法弄清楚出了什么问题。我需要传递我的复选框的值(如果选中或未选中),从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 ';
?>
答案 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 />
答案 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 ';
}
?>