gpt4 book ai didi

php - foreach 重复的复选框字段

转载 作者:行者123 更新时间:2023-11-29 12:09:02 25 4
gpt4 key购买 nike

我得到“$val”的值14products_extra_fields_id 1 和 4 已选中复选框字段,并且其他 products_extra_fields_id 中的另一个复选框已选中。我有两个复选框。如何避免重复的复选框字段。

<?php                       
$extra_fields_query = mysql_query("SELECT * FROM products_extra_fields");
while ($extra_fields = mysql_fetch_array($extra_fields_query)){

foreach ($HTTP_POST_VARS['extra_field'] as $key=>$val){
//$val get values 1 and 4

echo "<input type='checkbox' name='extra_field[".$extra_fields['products_extra_fields_id']."]' value='".$extra_fields['products_extra_fields_id']."' " . (($extra_fields['products_extra_fields_id'] == $val) ? checked : false). " >";
}
} ?>

enter image description here

最佳答案

您会看到重复的复选框,因为对于从数据库中提取的每一行,您都会循环访问用户发布的 extra_field 数据。 $HTTP_POST_VARS['extra_field'] 中有两个值,因此每行有两个复选框。

您应该使用 in_array 来测试每种情况下是否选中该复选框,而不是 ($extra_fields['products_extra_fields_id'] == $val)

$HTTP_POST_VARS 非常古老,并在 2001 年的 PHP 4.1 中被弃用。相反,您应该使用 $_POST 这是一个超全局变量。这意味着在函数中使用global之前,您不必使用它。

checked 是一个字符串,应在 echo 语句中用引号引起来。

以下内容应该可以解决所有这些问题:

$extra_fields_query = mysql_query("SELECT * FROM products_extra_fields");
while ($extra_fields = mysql_fetch_array($extra_fields_query)) {
echo "<input type='checkbox' name='extra_field["
. $extra_fields['products_extra_fields_id'] . "]' value='"
. $extra_fields['products_extra_fields_id'] . "' "
. (in_array($extra_fields['products_extra_fields_id'], $_POST['extra_field'])
? "checked" : "")
. " >";
}

关于php - foreach 重复的复选框字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31003406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com