28.11.2009, 11:39
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
Передать post данные на сервер с проверкой, и успешным завершением
здравствуйте, у меня такой вопрос, для работы с формой сейчас я использую библиотеку JsHttpRequest, проблем ни каких нет, текстовая информация передавалась на ура, также различные файлы тоже.
Но тут решил перейти на jQuery, собственно не могу найти примеров, а нужно всего чтобы можно было передавать данные методом POST, при запросе, клиентский скрипт передавал POST данные на сервер, и уже PHP скрипт делал проверку на переданные данные, в случаи чего, выдавал ошибку к примеру в контейнер <div id="errors"></div>, а во время передачи данных, появлялся индикатор загрузки.
Если данные были успешно переданы, выдавало соответственно сообщение в <div> контейнер.
Последний раз редактировалось Simon, 28.11.2009 в 11:41.
|
|
28.11.2009, 12:32
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
|
|
28.11.2009, 13:58
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
спасибо, про этот плагин я знаю, но забыл про него упомянуть, хотел как раз по нему и задать вопрос, вообще зачем он нужен? разве без него jQuery не справится?
сейчас на гуглил, и нашёл вот что
http://www.bitrepository.com/a-simpl...alidation.html
именно то что нужно, проверка полей производится на сервере, я вообще стороник клиентской проверки. Единственное на этом сайте нет загрузки файла, архив скачал, буду пробовать. Хочу заметить, этот пример не использует плагин jQuery Form
|
|
29.11.2009, 00:02
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
ну кто ответит?
|
|
29.11.2009, 00:20
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от Simon
|
я вообще стороник клиентской проверки
|
на сервере все равно надо дублировать все проверки. Эт я так, напомнил, а то вдруг вы не в курсе.
|
|
29.11.2009, 20:21
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
так я и грю что стороник клиентской проверки, серверная проверка должна быть обязательно. Я сейчас проверил, оказывается по той ссылке что приводил на форму, там можно только отправлять текст, а вот файл не видит, что нужно для этого не подскажите?
|
|
30.11.2009, 19:45
|
Интересующийся
|
|
Регистрация: 30.11.2009
Сообщений: 24
|
|
Посмотрите вот этот плагин. Его легко можно изменить под свои нужды, в том числе и проверять файлы можно по размеру и расширению.
|
|
01.12.2009, 05:34
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
ага спасибо, только вчера гуглил, и попал на этот сайт, смотрел пример, но я не очень ещё разбираюсь, вот хотел спросить, можно совмещать, отправлять данные допустим поля <input type="text"> вместе с файлом? есть где пример?
|
|
01.12.2009, 11:17
|
Интересующийся
|
|
Регистрация: 30.11.2009
Сообщений: 24
|
|
Сообщение от Simon
|
ага спасибо, только вчера гуглил, и попал на этот сайт, смотрел пример, но я не очень ещё разбираюсь, вот хотел спросить, можно совмещать, отправлять данные допустим поля <input type="text"> вместе с файлом? есть где пример?
|
Конечно же можно. Вот Вам пример кода, который отвечает за загрузку файла на сервер:
Файл index.php
.....
<input type="button" name="ulpoad_file" id="ulpoad_file" value="Обзор" width="102" height="34" class="button">
<span id="ulpoad_file_text"></span>
<input type="hidden" name="ulpoaded_file" id="ulpoaded_file">
.....
.....
new AjaxUpload('#ulpoad_file',
{
action: '/upload.php',
name: 'userfile',
autoSubmit: true,
responseType: false,
onChange: function(file, extension){},
onSubmit: function(file , ext)
{
if(!(ext && /^(jpg|png|jpeg|gif)$/.test(ext)))
{
alert('Ошибка: Вы можете загружать только графические файлы с расширением: jpg|png|jpeg|gif.');
return false;
}
this.disable();
},
onComplete: function(file, response)
{
$("#ulpoaded_file").val(file);
var str = response.split("|");
if(str[0] == "1") $("#ulpoad_file_text").addClass("green");
if(str[0] == "0") $("#ulpoad_file_text").addClass("red");
$("#ulpoad_file_text").html(str[1]);
}
});
.....
Файл upload.php
if(!empty($_FILES))
{
$uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
if($_FILES['userfile']['size'] >= 2000000) {echo "0|Файл не должен быть больше 2Мб.";}
else
{
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {echo "1|Файл " . "\"" . $_FILES['userfile']['name'] . "\"" . " успешно загружен";}
else {echo "0|Произошла ошибка при загрузке файла " . "\"" . $_FILES['userfile']['name'] . "\"";}
}
}
Опять же, его можно изменить под Ваши нужды и добавить сюда необходимые данные (<input>) для отправки.
Удачи Вам.
|
|
01.12.2009, 20:18
|
Аспирант
|
|
Регистрация: 25.11.2008
Сообщений: 31
|
|
спасибо за пример, но это немного не то, нужно чтобы одновременно отправлялись данные в месте с картинками. Просто задача какая, делаю размещение новостей, есть форма, заголовок, большой текст, и выбор загрузки фото, и ниже кнопка отправить, при нажатии на которую, данные должны быть переданы скрипту, при этом, должна сработать серверная проверка, в случаи ошибок, о не правильном заполнении данных, вывести сообщение, если всё нормально, сохраняем, и выводим сообщение об успешном сохранении, и скрыть форму. Есть у кого примеры?
На JsHttpRequest всё это делалось без проблем
|
|
|
|