HTML PHP数组索引长度错误


HTML PHP array index lenght error

我有一个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中对问题进行硬编码,我怎么能做到这一点呢?

这可能是因为你正在进行

var_dump($_POST['array']);

当您将文本区域命名为"企业"时。试着只做

var_dump($_POST);

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

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

我想你是在动态添加问题文本?如果是这样,您可能应该在其上使用htmlentities以避免出现问题。

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

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