Как динамически создавать входные данные формы и затем отправлять их в php - PullRequest
1 голос
/ 23 октября 2011

У меня есть страница, где пользователь может нажать кнопку, которая добавит два новых ввода формы на страницу.Пользователь может сделать это столько раз, сколько необходимо.Проблема, с которой я столкнулся, заключается в том, что я не могу получить доступ к новым входам в 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]);           
    } 

Я ценю любую помощь, которая может быть предложена!

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Хорошо, я понял, это была ошибка новичка. Мои данные даже не были добавлены в мою форму. Спасибо за помощь, хотя! Я ценю время, которое ты уделил просмотру моего кода.

0 голосов
/ 23 октября 2011

Попробуйте поместить элементы в a и убедитесь, что вы отправляете форму с помощью кнопки отправки или form.submit из javasrtipt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...