大きな問題の一部として、私が現在立ち往生している場所の簡単な例を思いついた。PHPへのPOSTへの配列を構築する
私は、test.phpファイルへの配列のjavascript POSTを使用するhtmlフォームを持っています。 普通のハードコーディングされたテキスト文字列を投稿すると動作します。フォームからビルドした配列を投稿しようとすると、「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)
{
\t \t echo $key;
\t \t echo '<BR>';
\t \t echo $value;
\t \t echo '<BR>';
}
?>
これは、jQueryの 'serialize'メソッドを使用して、送信準備が整ったデータセットを作成するようにしています。 – CBroe