我有一个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/>';
}
}