07.03.2009, 15:01
|
Интересующийся
|
|
Регистрация: 07.03.2009
Сообщений: 21
|
|
JQuery передача параметров в callback
Здравствуйте. Образовалась такая проблема.
Общий смысл скрипта состоит в том, что есть таблица, с 2 колонками, слева определенный текст, справа пусто.
При нажатии на кнопку, через ajax из php выдергиваются числа и ставятся в правую колонку напротив !своего! текста.
Начал делать так, циклом обхожу таблицу, вытаскиваю текст, делаю запрос ajax
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'text='+text,
success: function(msg) { alert('true'); },
error: function() { alert('false'); },
});
Этот код полностью рабочий, но я не могу в созданной функции на событие success указать какой указатель куда потом писать ответ, на какой текст..
пробывал делать так
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'text='+text,
success: ok(text),
error: no(text),
});
function ok(text) {
вставка ответа под текст или ID
}
function no(text) {
вставка сообщения об ошибке под текст или ID
}
но так начинаются непонятные глюки и срабатывает сразу и error и success
использовать синхронные запросы - не вариант.
Подскажите, как решить эту проблему или может есть какой-нить другой способ, организации данной задачи?
|
|
07.03.2009, 15:11
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
obj=$("#id");//точно не уверен, что это записывается так.но смысл думаю понятен
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'text='+text,
success: (function(){return function(msg) { alert('true');/*тут ссылка на ваш объект*/$(obj)/**/ }})(),
error: function() { alert('false'); },
});
попробуйте этот код.
после почитайте статью
|
|
07.03.2009, 16:04
|
Интересующийся
|
|
Регистрация: 07.03.2009
Сообщений: 21
|
|
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'module=domain_reg&action=check&id='+id,
success: function(msg) { set_id(id, msg);},
error: function() { },
});
set_id(id, msg)
принимает ID куда надо вставить ответ и сам ответ.
сделал так ,при одиночном запросе, все отлично работает, а вот если сделать одновременный запрос на изменение колонок, тогда у всех поставится последний ответ, думаю это пример из статьи.
но если честно, я не понял, как применить решение из статьи, для своего случая.
Последний раз редактировалось Cepin, 07.03.2009 в 16:08.
|
|
07.03.2009, 16:36
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
тема сложновата для некоторых в первый раз.
лично я этот и пару сопутствующих разделов читал раза три четыре непрерывно, пока не осознал.
в общем медитации, и еще раз мекдитации)))
код же в вашему случае будет выглядеть так
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'module=domain_reg&action=check&id='+id,
success: (function(id_){return function(msg) { set_id(id_, msg);} })(id),
error: function() { },
});
прочитайте более внимательно эту часть статьи, для понимания происхдящих процессов.
кроме того советую перечитать весь цикл статей, с целью общего ознакомления.
я открыл для себя много нового после их прочтений, хотя "писал" на JS и до этого
Последний раз редактировалось Gvozd, 07.03.2009 в 16:39.
|
|
08.03.2009, 15:56
|
Интересующийся
|
|
Регистрация: 07.03.2009
Сообщений: 21
|
|
спасибо большое, помогло.
|
|
08.03.2009, 16:16
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
пожалуйста.
|
|
08.05.2009, 16:19
|
|
ПробЫй
|
|
08.05.2009, 16:22
|
|
Игого и агага
Сообщение от Cepin
|
Здравствуйте. Образовалась такая проблема.
Общий смысл скрипта состоит в том, что есть таблица, с 2 колонками, слева определенный текст, справа пусто.
При нажатии на кнопку, через ajax из php выдергиваются числа и ставятся в правую колонку напротив !своего! текста.
Начал делать так, циклом обхожу таблицу, вытаскиваю текст, делаю запрос ajax
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'text='+text,
success: function(msg) { alert('true'); },
error: function() { alert('false'); },
});
Этот код полностью рабочий, но я не могу в созданной функции на событие success указать какой указатель куда потом писать ответ, на какой текст..
пробывал делать так
$.ajax(
{
type: 'POST',
url: './ajax.php',
data: 'text='+text,
success: ok(text),
error: no(text),
});
function ok(text) {
вставка ответа под текст или ID
}
function no(text) {
вставка сообщения об ошибке под текст или ID
}
но так начинаются непонятные глюки и срабатывает сразу и error и success
использовать синхронные запросы - не вариант.
Подскажите, как решить эту проблему или может есть какой-нить другой способ, организации данной задачи?
|
ПробЫй
|
|
08.05.2009, 21:19
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
А-а-а-а-а.
Потс хохвачен!
мы все умрем!!!!!
|
|
|
|