HTML PHP数组索引长度错误

时间:2015-03-04 20:25:28

标签: php html

我有一个html表单,我使用name =" array []"对输入进行分组。然后在提交时使用PHP循环遍历数组。好吧,我使用array []存储问题,但是当问题(数组索引)长于64个字符时,它不会将该数组键传递给我的PHP。

HTML

<textarea name="corporate[CAN YOU SHOW US SIMILAR PROJECTS WITH THE SAME TARGET AUDIENCE? COMPETITORS?]"></textarea>

当我这样做时:

var_dump($_POST['array']);

我得到数组(0) 但是当我使用较短的索引时,它可以工作。

现在,如果我手动创建一个关联数组,它可以正常工作:

$array = array("CAN YOU SHOW US SIMILAR PROJECTS WITH THE SAME TARGET AUDIENCE? COMPETITORS?"=>"0");

我做错了什么?

我认为从html表单到PHP是一个问题。我试图用我的PHP循环输入,以便我可以循环并显示每个问题和相应的答案:

    foreach ($array as $key=>$value) {
        if ($value != NULL) {
            echo '<strong>' . $key . '</strong><br/>';
            echo $value . '<br/><br/>';
        }
    }

这给了我:

问题

答案

问题

答案

如果不给每个输入提供他们自己的名字来传递问题,或者在我的HTML中对问题进行硬编码,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:2)

可能是因为你正在做这个

var_dump($_POST['array']);

当您将textarea命名为“corporate”时。试试吧

var_dump($_POST);

答案 1 :(得分:0)

您可以对问题使用隐藏输入,并将索引与答案匹配:

<input type="hidden" name="question[1]" value="CAN YOU SHOW US BLAH?">
<textarea name="answer[1]"></textarea>

我假设您正在动态添加问题文本?如果是这样,您应该使用htmlentities来避免问题。

然后只循环一个并访问另一个:

foreach ($_POST['answer'] as $key => $value) {
    if (!empty($value)) {
        echo '<strong>' . $_POST['question'][$key] . '</strong><br/>';
        echo $value . '<br/><br/>';
    }
}