Здравствуете!
Вообщем такая проблема, есть рабочий код для отправки формы без перезагрузки страницы.
Следующий цикл выводит по 9 блоков с формами на страницу:
$q=mysql_query("SELECT * FROM `users` WHERE `id_user` = '$us_id' ORDER BY `id` DESC LIMIT $start, 9");
while($post=mysql_fetch_array($q)){
echo"<div id='loadA'><div id='loadB'>"; // обновляем блок после отправки формы и успешного выполнения
echo "<table class='block_tab_plant' width='158' height='150'><tr></td>";
Здесь дальше большой кусок кода, выводятся данные из таблицы с формами.
Одна из форм для примера
echo "<form action='' method='post'>
<input type='hidden' name='seat' value='".$post['id']."'>
<input type='hidden' name='select' value='".$lp['id']."'>
<input type='submit' value='Забрать' class='btn_small'>
</form>";
echo "</td></tr></table>";
echo "</div></div>";
}
Ну и соответственно сам код обработки формы:
<script>
$(document).ready(function(){
$('form').submit(function() {
var current = $(this).parent().parent();
var data = $(this).serialize();
data += '&ajax-request=true';
$.ajax({
type: 'POST',
url: '/ajax/seat.php',
dataType: 'json',
data: data,
success: (function() {
return function(data) {
//Обновляем блок
if (data.status === 'success') {
setTimeout("jQuery('#loadA').load('#div #loadB');",1000);
}
};
})()
});
// Останавливаем обработчик
return false;
});
});
</script>
После того как нажимаю кнопку в первом блоке, все проходит нормально, ответ от обработчика выводится, блок обновляется, тут же нажимаю на второй блок страница обновляется а сама форма не отправляется, нажимаю на этот блок еще раз форма отправляется.
Если же убрать из скрипта вот этот кусок, то все работает нормально, страница не обновляется, но информация в блоке тоже не обновляется:
if (data.status === 'success') {
setTimeout("jQuery('#loadA').load('#div #loadB');",1000);
}
Что посоветуете в данном случае?