Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.06.2011, 12:37
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

Ajax-запрос (POST) работает лишь отчасти, отсылая 2/3 переменных.
Здравствуйте. Я имею сайт, сделанный по шаблону (суть в том, что я его не создавал), и возникла необходимость к существующему Ajax-запросу типа POST добавить еще одну переменную copyright.

Теперь сам запрос стал выглядеть так:

new Ajax.Request( _url,
							{
								method: 'post',
								evalJSON: 'force',
								parameters: { 'caption'     : caption,
										      'description' : description.encodeParam(),
										      'copyright'	: copyright },
								onSuccess: function(t)
								{
									/* No Permission */
									if ( t.responseJSON )
									{
										ipb.gallery.popups['edit'].hide();
										
										$('gallery_caption').update( t.responseJSON['caption'] );
										$('gallery_description').update( t.responseJSON['description'] );
										$('gallery_copyright').update( t.responseJSON['copyright'] );
									}
									else if ( t.responseText )
									{
										alert( ipb.lang[ t.responseText ] ? ipb.lang[ t.responseText ] : t.responseText );
									}
								}
							}
						);


Но отсылаются только значения caption и description. Я JavaScript увидел второй раз в жизни, а рабочий код нужен уже завтра - изучать некогда. Что делать?
Ответить с цитированием
  #2 (permalink)  
Старый 14.06.2011, 12:54
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

Дополнение к проблеме
caption имеет тип varchar(255),
description имеет тип text,
copyright имеет тип varchar(120).

Переменная copyright в скрипте точно существует, я проверил через alert(copyright). При прямом изменении значения copyright через phpMyAdmin все проходит удачно.

Если вместо function(t) поставить нечто иное, например, так:

new Ajax.Request( _url,
							{
								method: 'post',
								evalJSON: 'force',
								parameters: { 'caption'     : caption,
										      'description' : description.encodeParam(),
										      'copyright'	: copyright },
								onSuccess: alert('Ok!')
							}
						);


Ничего не меняется, только для просмотра изменений приходится перезагружать страницу.

Последний раз редактировалось Vault34, 14.06.2011 в 12:57. Причина: Вспомнил еще кое-что
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2011, 14:55
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

ну так вы сейчас отсылаете данные, они применяются

все верно, как вы написали в коде

сделайте еще AJAX перезагрузку по прибытии ответа (ОК, например)

или просто перезагружайте страницу с помощью JS
Ответить с цитированием
  #4 (permalink)  
Старый 14.06.2011, 15:10
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

Прочитайте внимательнее, пожалуйста. Переменная copyright не отсылается, а caption и description - вполне. В этом проблема.
Ответить с цитированием
  #5 (permalink)  
Старый 14.06.2011, 15:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Vault34 Посмотреть сообщение

new Ajax.Request( _url,
							{
								method: 'post',
								evalJSON: 'force',
								parameters: { 'caption'     : caption,
										      'description' : description.encodeParam(),
										      'copyright'	: copyright },
								onSuccess: alert('Ok!')
							}
						);


Ничего не меняется, только для просмотра изменений приходится перезагружать страницу.
разве вы не это имели в виду?
Ответить с цитированием
  #6 (permalink)  
Старый 14.06.2011, 15:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Vault34
Переменная copyright не отсылается
А как вы проверяете, отсылается она или нет?
Ответить с цитированием
  #7 (permalink)  
Старый 14.06.2011, 15:38
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

melky, в первом сообщении был длинный код, во втором я отбросил часть для облегчения поиска проблемы и сказал результат.

Kolyaj, отсылается или нет - этого я не знаю. Но ее значение в MySQL не меняется. Значит, по крайней мере, оно туда не доходит.
Ответить с цитированием
  #8 (permalink)  
Старый 14.06.2011, 15:48
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

PHP скрипт сейчас посмотрел, изменил, все равно не работает как надо... вот что вышло:

protected function _editSave()
{
/* init */
$imageid = intval( $this->request['imageid'] );
$caption = trim( $this->request['caption'] );
$description = trim( IPSText::br2nl( IPSText:arseCleanValue( $_POST['description'] ) ) );
$copyright = trim( $this->request['copyright'] );

/* Make sure we have everything */
if( !$caption )
{
$this->returnString( $this->lang->words['gerror_no_title'] );
}

/* send it packing */
$result = $this->_moderate->editSave( $imageid, $caption, $description, $copyright );

/* Update deebee */
if ( $result === false )
{
return $this->returnString('no_permission');
}

return $this->returnJsonArray( $result );
}

Вместо смайлика : P без пробела
Ответить с цитированием
  #9 (permalink)  
Старый 14.06.2011, 15:50
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А метод editSave поменять?
Ответить с цитированием
  #10 (permalink)  
Старый 14.06.2011, 15:50
Интересующийся
Отправить личное сообщение для Vault34 Посмотреть профиль Найти все сообщения от Vault34
 
Регистрация: 14.06.2011
Сообщений: 18

В результате в записи под номером imageid меняются записи caption и description.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
POST запрос на AJAX vah-smile AJAX и COMET 3 11.06.2011 23:34
Не работает ajax запрос DZHETIGAPA AJAX и COMET 0 11.05.2011 00:37
проблемка с объектом, POST запрос Ajax zercs jQuery 1 24.04.2011 19:06
не работает ajax запрос ЯРОСЛАВ jQuery 9 07.04.2010 22:31
не работает AJAX запрос zokeoner AJAX и COMET 2 02.03.2010 11:38