Мне нужно иметь возможность добавлять дополнительные строки в следующую группу форм одним нажатием кнопки. Оператор PHP отображает динамический список параметров для выбора ввода на основе записей в базе данных.
<h3>Check 1:</h3>
<div class="row" id="check_1">
<div class = "col-md-4 padding-top-10">
<label for="checkJobName_1" class="control-label">Job/Client Name:</label>
<select class="form-control" id="checkJobName_1" name="checkJobName_1">
<option selected disabled>Choose a Client/Job</option>
<?php echo $dynamicJobList; ?>
</select>
</div>
<div class = "col-md-4 padding-top-10">
<label for="checkNumber_1" class="control-label">Check #:</label>
<input type="text" class="form-control" id="checkNumber_1" name="checkNumber_1" placeholder="Enter Check #"/>
</div>
<div class = "col-md-4 padding-top-10">
<label for="checkAmount_1" class="control-label">Check Amount:</label>
<input type="text" class="form-control" id="checkAmount_1" name="checkAmount_1" placeholder="Enter $Amount of Check"/>
</div>
</div>
Это функция javascript, которую я написал для этого:
function addCheck()
{
check_i++;
var checkDiv = document.createElement('div');
checkDiv.innerHTML = '<h3>Check '+check_i+':</h3><div class="row" id="check_'+check_i+'"><div class = "col-md-4 padding-top-10"><label for="checkJobName_'+check_i+'" class="control-label">Job/Client Name:</label><select class="form-control" id="checkJobName_'+check_i+'" name="checkJobName_'+check_i+'"><option selected disabled>Choose a Client/Job</option><?php echo $dynamicJobList; ?></select></div><div class = "col-md-4 padding-top-10"><label for="checkNumber_'+check_i+'" class="control-label">Check #:</label><input type="text" class="form-control" id="checkNumber_'+check_i+'" name="checkNumber_'+check_i+'" placeholder="Enter Check #"/></div><div class = "col-md-4 padding-top-10"><label for="checkAmount_'+check_i+'" class="control-label">Check Amount:</label><input type="text" class="form-control" id="checkAmount_'+check_i+'" name="checkAmount_'+check_i+'" placeholder="Enter $Amount of Check"/></div></div>';
document.getElementById('checks').appendChild(checkDiv);
}
Но это не работает, потому что если PHP-оператор, встроенный в HTML-код, я пытаюсь добавить в группу форм «check» … как бы вы это сделали?
Php является полным языком на стороне сервера, что означает нет
Ваш лучший вариант — json_encode вашего массива и отправить его через ajax-вызов или в область кода верхней части вашего php.
file1:
$array = array("data1" => array() ....);
echo json_encode($array);
Ваш HTML (с JQuery):
$.post("file1 uri" , function(data) {
var json = JSON.parse(data);
foreach (var x in json) alert("x: " + x + " json[x]" + json[x]);
});
PHP — это серверный язык, он отправляет данные клиенту и отвечает на запросы.
Javascript — это язык на стороне клиента, который изменяет то, на что смотрит клиент, а не то, что знает сервер.
Единственный способ заставить их работать вместе — это использовать вызовы AJAX в jQuery.