作爲一個較大問題的一部分,我想出了一個簡化的示例,說明當前我被卡住了。構建一個數組以POST到PHP
我有一個html表單,它使用一個數組的javascript POST作爲test.php文件。 如果我發佈一個普通的硬編碼文本字符串它的作品。如果我嘗試發佈一個從我的表單構建的數組,「來自測試的Hello」會出來,但數據不會。結果在警告框中可見。
(我註釋掉明文位)
我不知道我做錯了什麼?在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)
{
\t \t echo $key;
\t \t echo '<BR>';
\t \t echo $value;
\t \t echo '<BR>';
}
?>
您正在使這種方式變得複雜 - 使用jQuery的'serialize'方法來創建可供提交的數據集。 – CBroe