Для примера есть такая форма, с полем типа file:
<div id="my_error"></div><br>
<form id="my_form" action="server.php" enctype="multipart/form-data" method="post"><br>
Ваш НИК <input type="text" name="username"><br>
Ваш E-mail <input type="text" name="email"><br>
Прикрепите файл <input type="file" name="userfile"><br>
<input type="hidden" name="action" value="sendform"><br>
<input type="submit" name="OK"><br>
</form><br>
Делаю валидацию на jquery:
$(document).ready(function(){<br>
$('#my_form').submit( function (e){<br>
e.preventDefault();<br>
var str = $(this).serialize();<br>
$.ajax({<br>
type: "POST",<br>
url: "/ajax.php",<br>
data: str,<br>
success: function(msg) {<br>
$("#my_error").ajaxComplete(function(event, request, settings) {<br>
if ( msg == 'OK' ) {<br>
// ???? Здесь мне надо отправить форму на server.php<br>
}<br>
else {<br>
$(this).html(msg);<br>
}<br>
});<br>
}<br>
});<br>
return false;<br>
});<br>
});<br>
Саму валидацию осуществляет файлик ajax.php
if ( $_POST['action'] && $_POST['action'] == 'sendform' ) {<br>
$error = '';<br>
// опустим очистку переменной $_POST['username'] от мусора, это не важно в данном случае<br>
if ( !$_POST['username'] ) $error .= "<li>Не заполнен НИК</li>";<br>
if ( $_POST['username'] ) {<br>
// тут коннектимся к базе, проверяем занятость ника, может ли юзер вообще посылать файлы и так далее и так далее<br>
}<br>
if ( !$error ) echo "OK";<br>
else echo "<div class=\"err\">Ошибка! ".$error."</div>";<br>
}<br>
Вопрос такой: возможно ли соединить две технологии? Проверять данные с помощью ajax, а отправлять данные и вставлять в базу на server.php? Разумеется, у меня в server.php дублируется вся валидация, однако мне хотелось бы сделать скрипт более удобным для юзера, без перезагрузки страницы в случае ошибок.