我想为复选框设置更多值,怎么做?这是我的代码:从这段代码中我只能获得3个值,为什么?我想得到5个值。这样做吗?
$results=$watch.",".$thumbnail.",".$name.",".$description.",".$val;
<input type="checkbox" name="checkbox[]" id="checkbox[]" class="addbtn" value=<?php echo $results;?>
javascript fn:
function chkbox()
{
$('[name^=checkbox]:checked').each(function() {
var ckballvalue=($(this).val());
var latlngStrs = ckballvalue.split(",",5);
var link = latlngStrs[0];
var thumbnail = latlngStrs[1];
var name = latlngStrs[2];
var description = latlngStrs[3];
var categ = latlngStrs[4];
alert(link+thumbnail+name+description+categ);
}
答案 0 :(得分:1)
假设您的标记正确并且您正在使用POST
,那么您只需从PHP中的$_POST
变量中获取它们。
$checkedValues = $_POST['checkbox'];
这将是所有选中值的数组,其中'checkbox'是输入组的名称。
答案 1 :(得分:1)
当浏览器发布包含复选框的表单时,它仅为已选中的复选框发布任何内容。未经检查的那些根本不会被发送。
因此,如果您有五个复选框,但只检查了三个,则PHP $ _POST或$ _GET数组将只包含这三个的条目,而不是其他两个。
这也意味着如果您对所有复选框使用name="checkbox[]"
,那么您的数组元素将不会按预期编号。
请注意,这是HTML表单的工作方式;它与PHP无关。
如果你想强制它,你可以在表单上有一个隐藏字段,它使用Javascript镜像复选框状态。通过这种方式,您可以确定无论是否已选中,您都可以获得发布给您的价值。
或者你可以接受它的工作方式。如果没有选中,您可能无法获得发布给您的值,但是他们的缺席就足够了,因为没有发布这些字段可以让您知道他们没有被选中。
您可能会发现,给复选框显式数组元素键(即name="checkbox[]"
而不是name="checkbox[3]"
)会有用{{1}}。这样,它们将始终发布到$ _POST数组的右侧插槽中。
希望有所帮助。