Отправляю запрос на сервер, сервер обрабатывает: выполняет запрос к бд, и обновляет запись. После отправки запроса я ещё раз гружу участок html кода где было выполнено + или - рейтинга(всё таки ajax=) ). Но что-бы не уходить в минус, на серваке сделал проверку типа - рейтинг не ноль? Если ноль,то вывожу сообщение мол нельзя. Как послать что-нибудь клиенту что-бы написать ему, что мол нельзя уходить в минус?)
Или есть варианты проверки на клиентской стороне?
Буду благодарен за ответы
Спустя 8 минут, 44 секунды (21.03.2011 - 19:18) Invis1ble написал(а):
Клиентская сторона ненадежна, а написать можно, подгрузив в какой-нибудь div соответствующее сообщение
Спустя 3 минуты, 5 секунд (21.03.2011 - 19:21) alex12060 написал(а):
У аякса есть такая вещь щорошая, называется success, которая выполняется при успешном выполнении запроса. К ней преписывается функция, с аргументом, который хранит в себе ответ сервера.
Ответом может быть что угодно.
Его можешь вывести в какой-либо див.
Ответом может быть что угодно.
Его можешь вывести в какой-либо див.
Спустя 9 минут, 4 секунды (21.03.2011 - 19:30) fallow написал(а):
Запрос ведь успешно пошлется, просто на сервере проверку php не проходит.
А это как принять хоть что c сервера?Можно пример) Я новичок в jQuery)
А это как принять хоть что c сервера?Можно пример) Я новичок в jQuery)
Спустя 38 минут, 1 секунда (21.03.2011 - 20:08) Invis1ble написал(а):
Цитата |
А это как принять хоть что c сервера? |
примерно так:
receiver.load(
url,
{variable: value}, // post
function() {} // on success
)
Спустя 4 минуты, 36 секунд (21.03.2011 - 20:13) alex12060 написал(а):
Почему не проходит?
очень хорошо проходит, если отправить номрально.
Вот, вытащу пример из моего проекта:
Можешь тестить так, для понимания:
очень хорошо проходит, если отправить номрально.
Вот, вытащу пример из моего проекта:
function showHide() {
$.ajax({
type: "POST", // Отправляем типом "POST"
url: "cmd.php", // Коммендный обработчик - cmd.php
data: "act=show&c=<?php echo $page; ?>", // Отправляем данные, как в ГЕТ строке :)
success: function(msg) { // Если успешно отправил запрос, то заводим функцию с аргументом msg, в которой хранится ответ от обработчика
if (msg.substr(0, 5) == 'error') { // бла бла бла
alert(msg.substr(7)); // бла бла бла
return false; // бла бла бла
}
$("#ask-live").html(msg); // Пишем в див значение, полученное от сервера.
}
});
}
Можешь тестить так, для понимания:
$.ajax({
type: "POST", // Отправляем типом "POST"
url: "test.php", // Коммендный обработчик - test.php
data: "aux=105", // Отправляем данные, как в ГЕТ строке :)
success: function(msg) { // Если успешно отправил запрос, то заводим функцию с аргументом msg, в которой хранится ответ от обработчика
alert(msg);
}
});
// test.php
$aux = isset($_POST['aux']) ? (int)$_POST['aux'] : null;
if (is_null($aux)) echo 'Я не получил данных от аякса оО';
echo $aux;
Спустя 2 часа, 46 минут, 56 секунд (21.03.2011 - 23:00) fallow написал(а):
alex12060 , Invis1ble
Спасибо, так и сделал)
так послал запрос:
Как видно третья переменная - слово ошибки
В пхп, если в минус начинает уходить, то echo $_POST['error'];
И в success показывал этот самый erorrMessage. Если в saverate.php, то как я понял и сделал она покажет и у клиента))
Муторно, ну если разобраться,то полегче))
update
Эх.. и только потом приходит нормальное решение :
Можно было сразу в jQuery вытащит текст рейтинга, преоброзовать в число и в сравнение выводить текст (без лишних посылок на сервер). А на сервере просто не добавлять запись. И ничего не выводить :D
Спасибо, так и сделал)
так послал запрос:
Как видно третья переменная - слово ошибки
var errorMessage = "Ошибка";
$.ajax(
{
url : 'saverate.php',
type : 'POST',
data : { id: element, func : -1, error: errorMessage},
error : function(){ alert('error'); },
success: function(errorSuccess){ reload(errorSuccess,element); }
});
В пхп, если в минус начинает уходить, то echo $_POST['error'];
И в success показывал этот самый erorrMessage. Если в saverate.php, то как я понял и сделал она покажет и у клиента))
Муторно, ну если разобраться,то полегче))
update
Эх.. и только потом приходит нормальное решение :
Можно было сразу в jQuery вытащит текст рейтинга, преоброзовать в число и в сравнение выводить текст (без лишних посылок на сервер). А на сервере просто не добавлять запись. И ничего не выводить :D