我创建了一个动态复选框,但无法在另一个页面上显示其值。我所做的工作如下:
的index.php
<form method="post" action="print.php">
<?php
$host="localhost";
$username="root";
$password="";
$database="checkbox";
mysql_connect($host,$username,$password);
mysql_select_db("$database");
//Create the query
$sql = "select test, rate FROM lab";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
echo <<<EOL
<input type="checkbox" name="name[]"value="$row['test']}/{$row['rate']}"/>
{$row['test']}-{$row['rate']}<br />
EOL;
}
?>
<br>
<input type="submit" name="submit" value="Add" />
</form>
我试图在名为print.php的secon页面上显示该值:
<?php
print $_POST['name'];
?>
答案 0 :(得分:4)
您需要使用print_r
函数来显示数组中的所有值。像
print_r($_POST['name']);
答案 1 :(得分:0)
请参阅代码中发生的事情: - 您在数组中命名您的复选框。 因此,当您在php中获得提交时,您将收到一个名称为: - name []的数组 所以$ _POST ['name']将在php中返回一个数组。 当你使用print方法时,它只能打印变量值。 它无法打印数组或对象。如果你使用print / echo方法打印数组/对象,它将只打印它们的类型。 因此,要打印数组,您可以使用 print_r()方法,也可以使用 var_dump()来检查变量中的内容。 您可以通过任何循环以您喜欢的方式访问数组。 有关print-r和var_dump的更多信息,请访问手动链接 [php.net manual ][1] http://www.php.net/manual/en/function.var-dump.php
答案 2 :(得分:0)
您需要一些方法来识别选中的复选框。您有几个选项使用和索引变量,并将其作为索引或从值中识别它。
这里我添加了$ rowNum作为name
的索引。
$rowNum=0;
while($row = mysql_fetch_assoc($result)) {
echo <<<EOL
<input type="checkbox" name="name[$rowNum]"value="$row['test']}/{$row['rate']}"/>
{$row['test']}-{$row['rate']}<br />
EOL;
$rowNum++;
}
如果您只检查第一个和第三个复选框,那么在PHP中您将获得
$_POST['name'] = Array
(
[0] => test0/rate0
[2] => test2/rate2
)
如果您没有在代码中使用$ rowNum并选择与上面相同的选项,您将获得以下输出。
$_POST['name'] = Array
(
[0] => test0/rate0
[1] => test2/rate2
)
您可以在print.php
if (is_array($_POST['name'])){
foreach($_POST['name'] as $key=>$name){
echo $key, '=>', $name,'<br/>';
//Here $key is the array index and $name is the value of the checkbox
}
}