Ситуация такая: через ajax и innerHTML в нужное место страницы подгружается форма которая формируется в отдельном php файле.
function refresh(){
$.ajax({
url: "ajax/db_table.php",
success: function (data) {
document.getElementById('boxcontent').innerHTML = data;
}
});
}
window.onload = refresh();
Проблема заключается в том, что эту новоиспеченную форму мне нужно сабмитить через ajax.
$( document ).ready(function() {
var frm_upd = $('#upd_db');
frm_upd.submit(function (ev) {
$.ajax({
type: frm_upd.attr('method'),
url: frm_upd.attr('action'),
data: frm_upd.serialize(),
success: function (data) {
if (data == "ok"){
$.gritter.add({
text: 'Информация успешно обновлена.'
});
}else{
$.gritter.add({
text: 'Ошибка! Информация не обновлена.'
});
}
}
});
ev.preventDefault();
});
});
Форма #upd_db отправляет post запрос к файлу db.php, если все прошло нормально то db.php возвращает ответ "ok". В БД все обновляется нормально, проблема в том, что после сабмита формы меня в браузере перекидывает к файлу db.php и я просто вижу надпись "ok", а по идее меня со страницы с формой никуда кидать не должно, только уведомлялка должна всплыть все хорошо или нет.
Интересное наблюдение. Форма подгружается на страницу через ajax и innerHTML и она действительно видна на странице. Но когда смотрю код страницы в браузере то кода формы там не видно, т.е. просто пустой div #boxcontent. Возможно, поэтому Javascript и не может достучаться до этой формы. Пытался подгружать javascript для сабмита через ajax вместе с формой, но результат тот же самый: меня снова перекидывает к файлу db.php.
Может у кого-нибудь есть идеи в чем проблема и как её решить?