[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ajax jQuery | Получение данных от сервера
fallow
Есть система повышения/понижения рейтинга, + или - , но стоит ограничение на то чтобы нельзя было уйти в минус.
Отправляю запрос на сервер, сервер обрабатывает: выполняет запрос к бд, и обновляет запись. После отправки запроса я ещё раз гружу участок html кода где было выполнено + или - рейтинга(всё таки ajax=) ). Но что-бы не уходить в минус, на серваке сделал проверку типа - рейтинг не ноль? Если ноль,то вывожу сообщение мол нельзя. Как послать что-нибудь клиенту что-бы написать ему, что мол нельзя уходить в минус?)
Или есть варианты проверки на клиентской стороне?
Буду благодарен за ответы smile.gif



Спустя 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)

Спустя 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
Спасибо, так и сделал)

так послал запрос:
Как видно третья переменная - слово ошибки

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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.