2014-03-19 48 views
0

我构建了一个问卷,实际上是一种在线调查。我遇到了关于下面代码的主要问题。不管我多努力,我的阵列显然不会返回任何东西。我在下面提供了一个完整的代码,如果有人能找到错误,这将非常有帮助。结果返回空白页面。通过输入字段和php数组+循环声明和使用变量

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文件PROCESS.PHP

<?php 
$blah = ""; 
$title = $_POST['title']; 
$ask = array(); 

for($j=1; $j<4; $j++) { 
    $ask[$j] = $_POST['ask$j']; 

if($ask[$j] != "") { 
    $area = '<textarea name="ans11"></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 = "ans" + index + am[index]; 
     var div = document.createElement("div"); 
     div.innerHTML = textarea.outerHTML; 
     document.getElementById("inner"+index).appendChild(div); 
} 
+0

可能重复, name =“something \ [\]”或name =“something”?](http://stackoverflow.com/questions/4688880/html-element-array-name-something-or-name-something) –

回答

1

我believ e你的问题是你如何在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'];