私は、ユーザーがページに2つの新しいフォーム入力を追加するボタンを押すことができるページを持っています。ユーザーは必要な回数だけこれを行うことができます。私が持っている問題は、私が提出しているPHPファイルの新しい入力にアクセスできないように見えることです。フォーム入力を動的に作成してPHPに送信する方法
ここには、ユーザーが見るページのボタンのコードがあります。それはフォームの中にあります。ここで
<div class='instruction'>
<p>Please use the checkpoint tool to outline the primary steps
necessary for completion of the project.
<h4 style='margin-bottom:5px;'>Checkpoint Tool</h4>
<input type='button' onclick='addCheckpoint()' value='Add Checkpoint' />
<input type='text' id='count' name='projectCount' style='width:25px;' readonly='true' />
</p>
<div id='checkpoints'>
</div>
</div>
は(JavaScript関数のaddCheckpointである)ここで
function addCheckpoint()
{
var count = +document.getElementById('count').value;
// Declare Variables
var checkpointText = "Checkpoint "+(count+1);
var nameText = "Checkpoint Name: ";
var instructionText = "Instructions: ";
var previous = document.getElementById("checkpoints");
var newP = document.createElement("p");
var nameInput = document.createElement("input");
nameInput.setAttribute("type","text");
nameInput.setAttribute("name","checkpointName" + count);
var instructionInput = document.createElement("textarea");
instructionInput.setAttribute("name","checkpointInstruction" + count);
instructionInput.setAttribute("rows","4");
instructionInput.setAttribute("cols","56");
// Append Variables
newP.appendChild(document.createTextNode(checkpointText));
newP.appendChild(document.createElement("br"));
newP.appendChild(document.createElement("br"));
newP.appendChild(document.createTextNode(nameText));
newP.appendChild(nameInput);
newP.appendChild(document.createElement("br"));
newP.appendChild(document.createTextNode(instructionText));
newP.appendChild(instructionInput);
newP.appendChild(document.createElement("br"));
newP.appendChild(document.createElement("hr"));
previous.appendChild(newP);
document.getElementById('count').value = count + 1;
}
はそれに提出されているページ上のコードが掲載さの値を取得しようとしています。
$projectCount = strip_tags($_POST["projectCount"]);
for($i = 0; $i < $projectCount; $i += 1)
{
$checkpointNames[] = strip_tags($_POST["checkpointName".$i]);
$checkpointDescriptions[] = strip_tags($_POST["checkpointDescription".$i]);
}
ご協力いただきありがとうございます。要素を入れて、あなたがjavasrtipt
PHPでいくつかのデバッグを追加すると、画面にdump $ _POSTのように表示されます...どのように見えますか? – lampej
$ _POSTにvar_dumpを使用し、動的に作成されたものを除いて、すべての入力をフォームに出力しました。同様に、POSTの代わりにGETを使用すると、作成された入力はURLに送信されません。 – user1009142