我做了一个问卷,实际上是一种在线调查。我遇到了关于下面代码的主要问题。不管我怎么努力,我的数组显然没有返回任何东西。我在下面提供了一个完整的代码,如果有人能找到错误,这将是非常有帮助的。结果返回空页。
HTML表单
<form action="process.php" method="post">
Title: <br/><input type="text" name="title"><br/><br/>
Question 1: <br/><textarea name="ask[1]"></textarea><br/>
Question 2: <br/><textarea name="ask[2]"></textarea><br/>
Question 3: <br/><textarea name="ask[3]"></textarea><br/><br/>
<input type="submit" name="submit" value="PROCEED">
</form>
<?php
$blah = "";
$title = $_POST['title'];
$ask = array();
for($j=1; $j<4; $j++) {
$ask[$j] = $_POST['ask$j'];
if($ask[$j] != "") {
$area = '<textarea name="answers11"></textarea>';
$addmore = '<button type="button" name="addmore" onClick="addmore('.$j.');">Add more</button>';
$blah .= $j.'): '.$ask[$j].'<br/>'.$area.'<br/><div id="inner$j"></div>'.$addmore.'<br/><br/>';
}}
echo $blah;
?>
JAVASCRIPT文件var am = [];
for(var i=1; i<101; i++){
am[i] = 1;
}
function addmore(index) {
am[index]++;
var textarea = document.createElement("textarea");
textarea.name = "answers" + index + am[index];
var div = document.createElement("div");
div.innerHTML = textarea.outerHTML;
document.getElementById("inner"+index).appendChild(div);
}
我相信你的问题是如何在PHP中捕获数组。这些线:
for($j=1; $j<4; $j++) {
$ask[$j] = $_POST['ask$j'];
应:for($j=1; $j<4; $j++) {
$ask[$j] = $_POST['ask'][$j];
或者更简单:
$ask = $_POST['ask'];
PHP将转换指定数组的表单元素。
ask[...]
将被转换为数组:
$_POST = array(
'ask' => array(...)
)
您可以通过var_dump
查看$_POST数组的行为:var_dump($_POST);
参见HTML元素数组,name="something[]"或名称="something" ?