通过输入字段和php array + for循环声明和使用变量

时间:2014-03-19 17:56:05

标签: javascript 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 FILE 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 FILE

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);
}

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

PHP将转换指定数组的表单元素。

ask[...]将转换为数组:

$_POST = array(
    'ask' => array(...)
)

您可以通过var_dump $ _POST数组来观察行为:var_dump($_POST);

请参阅HTML Element Array, name="something[]" or name="something"?