我有一个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中对问题进行硬编码,我怎么能这样做呢?
答案 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/>';
}
}