Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP POST print复选框条目:我在论坛上找不到任何有用的内容_Php_Arrays_Checkbox - Fatal编程技术网

PHP POST print复选框条目:我在论坛上找不到任何有用的内容

PHP POST print复选框条目:我在论坛上找不到任何有用的内容,php,arrays,checkbox,Php,Arrays,Checkbox,我已经搜索了论坛——这里和其他地方——试图找到一种方法,从一个帖子表单中打印出选中的选项,该表单使用一个复选框组,其名称区域[],其中值从1开始,接着是另外6个选项。因此,在每种情况下,名称都是areas[],但值从1到6 此表单中的所有其他条目(如姓名、电话号码等)都可以顺利进行 充其量,当我试着举一个我已经尝试过的例子时 $arr = $_POST[areas] 然后尝试在数组上为每个字符打印单词数组。太好了 如果我尝试 $\u POST['areas']我收到一个服务器错误。我在论坛上

我已经搜索了论坛——这里和其他地方——试图找到一种方法,从一个帖子表单中打印出选中的选项,该表单使用一个复选框组,其名称区域[],其中值从1开始,接着是另外6个选项。因此,在每种情况下,名称都是areas[],但值从1到6

此表单中的所有其他条目(如姓名、电话号码等)都可以顺利进行

充其量,当我试着举一个我已经尝试过的例子时

$arr = $_POST[areas] 
然后尝试在数组上为每个字符打印单词数组。太好了

如果我尝试 $\u POST['areas']我收到一个服务器错误。我在论坛上发现的很多东西都会导致服务器错误

我已经尝试了所有明显的事情-循环为而不是为每一个。。。我最多只能得到数组,更奇怪的是,A。我在测试中总是选择3个选项

我使用的是PHP5.3.8


有人能提出一些可行的建议吗?

您必须检查显示的每个复选框的值是否在$\u POST['areas']中:

$areas = $_POST['areas']; // if you get an error here, check your code cause it must work
//Some code...
$checked = '';
if (in_array($value, $areas)){
    $checked = 'checked="CHECKED"';
}
echo '<input type="checkbox" name="areas[]" '.$checked.' value="'.$value.'"/>';

如果显示的每个复选框的值在$\u POST['areas']中,则必须检查其值:

$areas = $_POST['areas']; // if you get an error here, check your code cause it must work
//Some code...
$checked = '';
if (in_array($value, $areas)){
    $checked = 'checked="CHECKED"';
}
echo '<input type="checkbox" name="areas[]" '.$checked.' value="'.$value.'"/>';

您的问题很可能与html返回复选框值的方式有关

如果选中复选框,则返回其值;如果未选中复选框,则不返回任何值

在一个例子中,您将从名为name='colors[]的复选框中选择颜色,您的值如下:第一行是choices,第二行是php中返回的数组

[x] red  [ ] green  [ ] blue  [x] yellow  [ ] black  [ ] white

    array('red','yellow')

[ ] red  [ ] green  [ ] blue  [x] yellow  [ ] black  [x] white

    array('yellow','white')

[ ] red  [ ] green  [ ] blue  [ ] yellow  [ ] black  [ ] white

    null (no array returned)
一种方法是为每个选项使用不同的名称,并检查此样式中的值:

$red = isset($_POST['ck_red']);
$green = isset($_POST['ck_green']);
...
当然,如果您将红色复选框定义为name='ck\u red'等,则会出现这种情况

编辑你的代码如下

html:

回答:您的作业中有一个错误$AREA[]=$\u POST[AREA];也就是说,在使用$_POST[areas]时,您这样做是告诉解析器,您想知道变量$_POST[areas]的文本值,它是一个数组,php处理它的方法是返回文本“array”,而不是像javascript中那样返回由coma分隔的元素列表。另一个错误是,尽管它可以按您现有的方式工作,但您正在引用未定义的常量区域,而不是像$\u POST['areas']中那样使用字符串形式的“areas”,请注意键名周围的单引号。最后一个错误是将$u POST['areas']分配给$areas[],而不是没有[]的$areas。你在那里做的是,你在数组区域中添加一个新的数组元素,你给它赋值$u POST['areas'],因此如果没有第一个错误,它将创建二维数组区域=>arrayarray'a','b','c'

修复php:

$areas = $_POST['areas'];
foreach ($areas as $value) { 
    echo $value . " "; 
} 

您的问题很可能与html返回复选框值的方式有关

如果选中复选框,则返回其值;如果未选中复选框,则不返回任何值

在一个例子中,您将从名为name='colors[]的复选框中选择颜色,您的值如下:第一行是choices,第二行是php中返回的数组

[x] red  [ ] green  [ ] blue  [x] yellow  [ ] black  [ ] white

    array('red','yellow')

[ ] red  [ ] green  [ ] blue  [x] yellow  [ ] black  [x] white

    array('yellow','white')

[ ] red  [ ] green  [ ] blue  [ ] yellow  [ ] black  [ ] white

    null (no array returned)
一种方法是为每个选项使用不同的名称,并检查此样式中的值:

$red = isset($_POST['ck_red']);
$green = isset($_POST['ck_green']);
...
当然,如果您将红色复选框定义为name='ck\u red'等,则会出现这种情况

编辑你的代码如下

html:

回答:您的作业中有一个错误$AREA[]=$\u POST[AREA];也就是说,在使用$_POST[areas]时,您这样做是告诉解析器,您想知道变量$_POST[areas]的文本值,它是一个数组,php处理它的方法是返回文本“array”,而不是像javascript中那样返回由coma分隔的元素列表。另一个错误是,尽管它可以按您现有的方式工作,但您正在引用未定义的常量区域,而不是像$\u POST['areas']中那样使用字符串形式的“areas”,请注意键名周围的单引号。最后一个错误是将$u POST['areas']分配给$areas[],而不是没有[]的$areas。你在那里做的是,你在数组区域中添加一个新的数组元素,你给它赋值$u POST['areas'],因此如果没有第一个错误,它将创建二维数组区域=>arrayarray'a','b','c'

修复php:

$areas = $_POST['areas'];
foreach ($areas as $value) { 
    echo $value . " "; 
} 

与其描述您尝试过的内容,不如给我们一个代码示例:试图解释它的HTML和PHP。根据您所说的,您使用了“areas[]”,因此$\u POST[areas]返回数组似乎很正常。var_dump$_POST;将向您展示您发布的所有内容,您可能会在其中找到您想要的内容……第二@WolfmanJoe,您是否可以发布一些代码片段,这些代码片段代表了不适合您的功能,最好是自己工作的功能-contained@user2190704-如果var_dump有用,但您仍然不确定如何使用它,这就是进步!警察
y/将包含复选框的HTML和var_dump输出粘贴到您的原始帖子中,这样我们就可以看到您正在使用的内容。与其描述您尝试过的内容,不如给我们一个代码示例:HTML和试图解释它的PHP。根据您所说的,您使用了“区域[]'因此$_POST[areas]返回一个数组似乎很正常。var_dump$_POST;将向您展示您发布的所有内容,您可能会在其中找到您想要的内容……第二@WolfmanJoe,您是否可以发布一些代码片段,这些代码片段代表了不适合您的功能,最好是自己工作的功能-contained@user2190704-如果var_dump有用,但您仍然不确定如何使用它,这就是进步!复制/粘贴包含复选框和var_dump输出的HTML到您的原始帖子中,这样我们就可以看到您正在使用的内容。谢谢大家。var_dump$_帖子很有帮助,它显示了我的值正在被发布,但我无法访问它们。谢谢,伙计们。var_dump$_POST很有帮助,它表明我的价值观正在发布,但我无法访问它们。我的表单代码是:无家可归者、老年难民、残疾人等。我的代码是:$areas[]=$_POST[areas];foreach$区域为$value{echo$value.}结果:数组。抱歉,尚未掌握格式化的诀窍。@user2190704无法在注释中格式化。然而,根据您在php中使用它做什么,选择Marshall或我的答案。我试图用我的答案告诉你的是,对一组复选框使用数组可能不是最好的选择,但这取决于以后如何在php中处理输入。现在我注意到你发布的内容中有一个错误,所以我将更新我的答案并将其包含在其中。哦,男孩用手掌敲击额头-非常感谢。这是一个复制所有其他变量赋值语法的经典案例,而不考虑它是如何工作的。感谢所有回答的人。@user2190704:这是真的。没问题:我的表格代码是:无家可归者、老年难民、残疾人等等,我的代码是:$areas[]=$\U POST[areas];foreach$区域为$value{echo$value.}结果:数组。抱歉,尚未掌握格式化的诀窍。@user2190704无法在注释中格式化。然而,根据您在php中使用它做什么,选择Marshall或我的答案。我试图用我的答案告诉你的是,对一组复选框使用数组可能不是最好的选择,但这取决于以后如何在php中处理输入。现在我注意到你发布的内容中有一个错误,所以我将更新我的答案并将其包含在其中。哦,男孩用手掌敲击额头-非常感谢。这是一个复制所有其他变量赋值语法的经典案例,而不考虑它是如何工作的。感谢所有回答的人。@user2190704:这是真的。没问题: