作为一个更大问题的一部分,我提出了一个简化的例子,说明我目前所处的位置。
我有一个html表单,它使用数组的javascript POST到test.php文件。 如果我发布一个普通的硬编码文本字符串,它就可以了如果我尝试发布一个我从我的表单构建的数组,那么“Hello from test”会出来,但数据却没有。结果在警告框中可见。
(我已经注释掉了纯文本位)
我不知道我做错了什么?该数组在Chrome调试器中看起来不错。
这是html和php
<html>
<head>
<script language="javascript" type="text/javascript" src="jquery-3.1.1.js"></script>
<script>
function testResults(myform)
{
var outputArray =[];
var count = 0;
for (var inp of myform)
{
if (inp.className == "portfolio")
{
if (inp.checked == true)
{
var nameString = inp.name;
var valueString = inp.value
outputArray[count]= nameString + ':' + '"' + valueString + '"';
count = count +1;
}
}
}
//alert (outputArray);
$.post("test.php",
{
//blackPortfolio: "Black",
//bluePortfolio: "Blue"
outputArray
},
function(data,status)
{
alert("Data: " + data + "\nStatus: " + status);
});
}
</script>
</head>
<body>
<div id="userForm" >
<form name="myForm" action="BuildPostStrng.html" onsubmit="return testResults(myForm)" method="POST">
<div class="CheckBoxTable">
<div class="CheckBoxCell">
<input type = "checkbox" class="portfolio" name = "blackPortfolio" value = "Black" />
<label for = "blackPortfolio">Black</label>
</div>
<div class="CheckBoxCell">
<input type = "checkbox" class="portfolio" name = "bluePortfolio" value = "Blue" />
<label for = "bluePortfolio"> Blue </label>
</div>
<input type="submit" value="OK">
</form>
</div>
<div id="map" </div>
test.php的
<?php
echo 'Hello from Test.php <BR>';
foreach($_POST as $key => $value)
{
echo $key;
echo '<BR>';
echo $value;
echo '<BR>';
}
?>