долгое время читатель, первый раз постер. Я работаю над формой, которая использует поля выбора, чтобы создать количество текстовых полей, которые требуется пользователю. Кажется, что Javascript работает нормально, каждый из них создает правильное количество текстовых полей. Я теряюсь в том, как получить значения из этого различного количества текстовых полей обратно в PHP для дальнейшей обработки. Я был бы признателен за любые советы.Передача данных с текстовых полей, созданных Javascript, на PHP
Вот мой JavaScript (хранится как отдельный файл и вызывается в начале страницы).
function BuildFormFields($amount)
{
var
$container = document.getElementById('FormFields'),
$item, $field, $i;
$container.innerHTML = '';
for ($i = 0; $i < $amount; $i++) {
$item = document.createElement('div');
$item.style.margin = '3px';
$field = document.createElement('span');
$field.innerHTML = 'Name of Expert';
$field.style.marginRight = '10px';
$item.appendChild($field);
$field = document.createElement('input');
$field.name = 'name_expert[' + $i + ']';
$field.type = 'text';
$item.appendChild($field);
$field = document.createElement('span');
$field.innerHTML = 'Title';
$field.style.margin = '0px 10px';
$item.appendChild($field);
$field = document.createElement('input');
$field.name = 'expert_title[' + $i + ']';
$field.type = 'text';
$item.appendChild($field);
$field = document.createElement('span');
$field.innerHTML = 'Organization';
$field.style.margin = '0px 10px';
$item.appendChild($field);
$field = document.createElement('input');
$field.name = 'organization[' + $i + ']';
$field.type = 'text';
$item.appendChild($field);
$container.appendChild($item);
}
}
function BuildFormFields2($amount2)
{
var
$container2 = document.getElementById('FormFields2'),
$item2, $field2, $i2;
$container2.innerHTML = '';
for ($i2 = 0; $i2 < $amount2; $i2++) {
$item2 = document.createElement('div');
$item2.style.margin = '3px';
$field2 = document.createElement('span');
$field2.innerHTML = 'Competency';
$field2.style.marginRight = '10px';
$item2.appendChild($field2);
$field2 = document.createElement('input');
$field2.name = 'competency[' + $i2 + ']';
$field2.type = 'text';
$item2.appendChild($field2);
$field2 = document.createElement('span');
$field2.innerHTML = 'Number of Skills';
$field2.style.margin = '0px 10px';
$item2.appendChild($field2);
$field2 = document.createElement('input');
$field2.name = 'num_skills[' + $i2 + ']';
$field2.type = 'text';
$item2.appendChild($field2);
$container2.appendChild($item2);
}
}
function BuildFormFields3($amount3)
{
var
$container3 = document.getElementById('FormFields3'),
$item3, $field3, $i3;
$container3.innerHTML = '';
for ($i3 = 0; $i3 < $amount3; $i3++) {
$item3 = document.createElement('div');
$item3.style.margin = '3px';
$field3 = document.createElement('span');
$field3.innerHTML = 'Position';
$field3.style.marginRight = '10px';
$item3.appendChild($field3);
$field3 = document.createElement('input');
$field3.name = 'position[' + $i3 + ']';
$field3.type = 'text';
$item3.appendChild($field3);
$container3.appendChild($item3);
}
}
А вот пример одного из «р» блоков я в настоящее время используется для полей выбора:
<p><strong>Number of Experts that Participated: </strong><select name="number_experts" onchange="BuildFormFields(parseInt(this.value, 10));">
<option value=0>-- Skip for Now --</option>
<?php
for ($range = 1; $range <= 10; $range++)
{
echo '<option value=' . $range . '>' . $range . '</option>';
}
?>
</select>
<div id="FormFields" style="margin: 20px 0px;"></div>
</p>
Я благодарю всех за ваши ответы до сих пор. Я хотел бы отметить, что часть HTML/PHP уже имеет теги правильной формы для работы. Моя проблема заключается в том, что все эти текстовые поля, созданные Javascript, получают эти значения в переменных на стороне PHP после нажатия кнопки отправки. – user3035089