Проблема в том, что вы добавляете форму динамически. Соответственно в DOM появляется новый элемент, к которому не привязаны какие либо события.
Решением проблемы будет привязка события submit непосредственно после динамического добавления формы на страницу.
Делается это очень просто. Я немного упростил ваш код, заменив js-решения более удобными jquery-альтернативами.
function refresh(){
$.get("ajax/db_table.php",function(data){
// Динамически вставляем форму в страницу
$('#boxcontent').html(data);
// Привязываем событие
$('#upd_db').bind('submit',function(event) {
// Отправляем POST-запросом данные формы
$.post($('#upd_db').attr("action"),$('#upd_db').serialize(),function(data){
if (data == "ok") {
$.gritter.add({
text: 'Информация успешно обновлена.'
});
} else {
$.gritter.add({
text: 'Ошибка! Информация не обновлена.'
});
}
});
event.preventDefault();
});
});
}
window.onload = refresh();
Код не тестировал, если будут с ним проблемы - пишите.
На будущее рекомендации вам:
вместо innerHTML - методы
text() и
html()
для post/get ajax запросов бывает удобнее использовать упрощенные методы
get() и
post()
и почитайте о привязке событий с помощью
bind()