我建立了一份调查问卷,实际上是一种在线调查。我遇到了关于下面代码的重大问题。无论我怎么努力,我的阵列显然都没有返回任何东西。我在下面提供了完整的代码,如果有人能找到错误,那将非常有用。结果返回空页。
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);
}
答案 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"?