Вот мой сценарий. У меня есть "Мастер-страница (Course_Maintenance.php)", на которой есть 2 div. Первый заполняется из кода на Course_Maintenace.php. Второй div заполняется следующим образом:
$(document).ready(function() {
$("select[id='SelectCourse']").change(function() {
var link = 'CourseTeeInfo.php?CourseID='+$(this).val();
$('#CourseTeeInfo').load(link);
})
});
Страница CourseTeeInfo.php имеет форму, которая заполняет и работает отлично. Я использую промежуточную систему на этой странице:
// Get stage of form
if(!isset($_POST['btn_submit']) || !$_POST['btn_submit']) { $stage=0; }
if(isset($_POST['btn_submit']) && $_POST['btn_submit'] == 'submit') { $stage=1; }
Поэтому, когда форма заполнена и проверена, я использую javascript для изменения значения btn_submit, чтобы вернуться к форме, чтобы использовать PHP для записи в базу данных MySQL:
function ValidateForm() {
if(!noErrors2()) { alert("You must fix errors on page before submitting"); }
document.getElementById('btn_submit').value = "submit";
document.TeeInfo.submit();
}
В настоящее время у меня есть Stage 2, просто повторяющий переменную $ _POST на экране. Это все работает, если я напрямую вызываю CourseTeeInfo.php. Однако, когда я нажимаю кнопку "Обновить" в форме (которая запускает javascript ValidateForm()) в div на курсе Course_Maintenace, div обновляется до пустого экрана, а не переменной переменной $ _POST (как он работает напрямую).
Любое понимание того, как правильно обновить div в родительском (Course_Maintenace.php) окне, будет с благодарностью. Я просто хочу, чтобы div работал точно так же, как это работает, если вызывается напрямую. Моя цель состоит в том, что после того, как я успешно напишу запись (в $ stage = 1), я снова загружу форму (еще раз) обратно в $ stage = 0, которая затем получит новую/обновленную информацию.
Заранее спасибо за помощь.
Я немного изменил подход и использовал вызовы jQuery AJAX для записи в базу данных MySQL (вместо перезагрузки формы). После записи записи я просто обновил div, используя функцию jQuery.load.