php 中的未知输出
Unknown output in php
我正在尝试从 php 中的数组中的值创建一个复选框表单,以通过 POST 提交。这是代码:
<?php
$check = array('beiber' => 'dumb', 'john' => 'singer', 'michael' => 'legend', 'lovato' => 'firestarter');
$t = 1;
$name = $t;
foreach($check as $x =>$y){
$name = $t++;
echo $name;
echo ' <input type = "checkbox" name =' . $name . 'value =' . $x . '/>' . $x . $sp . $y . '<br>';
}
?>
<input name = "submit" type = "submit" value = "submit" /><br>
<?php
if(isset($_POST['submit'])){
print_r( $_POST);
}
?>
如果选中所有框,单击提交后我得到的输出是:
Array ( [1value] => on [2value] => on [3value] => on [4value] => on [submit] => submit )
我的问题是为什么它们具有 'on' 的值,我该如何修复它。谢谢
您输出错误 html,将输出行更改为:
echo '<input type="checkbox" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($x) . '" />' . htmlspecialchars($x . $sp . $y) . '<br>';
注意:
- 属性值周围的引号
- 属性名称之间的空格
- html用于转义特殊符号的特殊字符
我正在尝试从 php 中的数组中的值创建一个复选框表单,以通过 POST 提交。这是代码:
<?php
$check = array('beiber' => 'dumb', 'john' => 'singer', 'michael' => 'legend', 'lovato' => 'firestarter');
$t = 1;
$name = $t;
foreach($check as $x =>$y){
$name = $t++;
echo $name;
echo ' <input type = "checkbox" name =' . $name . 'value =' . $x . '/>' . $x . $sp . $y . '<br>';
}
?>
<input name = "submit" type = "submit" value = "submit" /><br>
<?php
if(isset($_POST['submit'])){
print_r( $_POST);
}
?>
如果选中所有框,单击提交后我得到的输出是:
Array ( [1value] => on [2value] => on [3value] => on [4value] => on [submit] => submit )
我的问题是为什么它们具有 'on' 的值,我该如何修复它。谢谢
您输出错误 html,将输出行更改为:
echo '<input type="checkbox" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($x) . '" />' . htmlspecialchars($x . $sp . $y) . '<br>';
注意:
- 属性值周围的引号
- 属性名称之间的空格
- html用于转义特殊符号的特殊字符