Перейти к контенту

Форуский AJAX - как отправить переменные в php-скрипт POST методом ?


Рекомендуемые сообщения

Доброго времени суток.

 

Есть скрипт :

 

function game_pusk()
{
//----------------------------------
// Using fancy js?
//----------------------------------

if ( ! use_enhanced_js )
{
	return;
}

var fields = new Array();

fields['udar1'] = document.forms['RAKETA777'].udar1.value;
fields['text'] = document.forms['RAKETA777'].text.value;
fields['clan_id'] = document.forms['RAKETA777'].clan_id.value;

/*--------------------------------------------*/
// Main function to do on request
// Must be defined first!!
/*--------------------------------------------*/

do_request_function = function()
{
	//----------------------------------
	// Ignore unless we're ready to go
	//----------------------------------

	if ( ! xmlobj.readystate_ready_and_ok() )
	{
		xmlobj.show_loading();
		return;
	}

	xmlobj.hide_loading();

	//----------------------------------
	// INIT
	//----------------------------------

	var ajax_return = xmlobj.xmlhandler.responseText;

	if ( ajax_return != 'error' )
	{
		var vivod = document.getElementById('raketa');
		vivod.innerHTML = ajax_return;
	}

	return;		
}

//----------------------------------
// LOAD XML
//----------------------------------
xmlobj = new ajax_request();
xmlobj.onreadystatechange( do_request_function );
var url = ipb_var_base_url+'autocom=aviaudar&do=run';
var xmlreturn = xmlobj.process( url );

return;
}

 

Подскажите, как мне отправить переменные fields['udar1'], fields['text'], fields['clan_id'] в ipb_var_base_url+'autocom=aviaudar&do=run методом POST ?

Заранее спасибо. :D

Ссылка на комментарий
Поделиться на других сайтах

И еще один злободневный вопрос.

Начинает выполняться аякс, пишут типа загрузка и тут бах - страница обновляется.

С чем это можно быть связано ? Раздражает очень.

Причем скрипт самый простейший, например echo "123";

 

Нашел ошибку

Ошибка: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: http://domain/jscripts/ips_xmlhttprequest.js :: anonymous :: line 258"  data: no]
Источник: http://domain/jscripts/ips_xmlhttprequest.js
Строка: 258

 

Строка 258 :

return ( this.xmlhandler.readyState == 4 && this.xmlhandler.status == 200 ) ? true : false;

 

Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Скачайте "Ajax Быстрый ответ" от Sannis'а и посмотрите, как сделано там.) Конкретно - js файл.

 

Возможно, ошибаюсь, но вроде бы там через POST отправляется.

Ссылка на комментарий
Поделиться на других сайтах

Можно ещё проще, поиском по слову post в папке скриптов форума :D Неужели не нашлось примеров?

 

P.S. Я не обещаю что это именно post.

Ссылка на комментарий
Поделиться на других сайтах

аякс никогда не отправляет по методу пост, то что там написано - просто наукообразие

если бы аякс отправлял пост, то можно было бы отправлять файлы прямо по document.getElementById('file').value

а так приходится извращатся с iframe

Ссылка на комментарий
Поделиться на других сайтах

По-моему мы эту тему уже затрагивали и я тогда сказал, что если бы ажакс не отправлял данные по методу POST то данные, переданные через ajax были бы недоступны в переменных $_POST

Так что Архар, мне непонятно твоё мнение.

 

если бы аякс отправлял пост, то можно было бы отправлять файлы прямо по document.getElementById('file').value

а так приходится извращатся с iframe

У себя на форуме я отправляю через ажакс, никкакого iframe там нет. Использую getElementById.

 

Как сделано в стандартном форуме 2.х я не знаю, но то что отправлять через POST можно, это факт.

Возможно конечно именно в стандартном IPB отправляется через GET, но я у себя на форуме отправляю через POST.

Но вопрос ведь был про ajax вообще, а не про "ajax в форуме ipb" не так ли? Поэтому со всей ответственностью могу заверить что через ajax отправлять данные в POST можно.

Ссылка на комментарий
Поделиться на других сайтах

файл аттачишь через аякс?

перезагружается страница, не вижу аякс загрузки файла

 

 

 

 

 

про $_POST хрен знает

ибо используем же мы $_POST['Post'] в аякс-быстром-ответе

 

 

 

 

Но вопрос ведь был про ajax вообще

название темы -

Форуский AJAX

 

собственно как отправить с помощью форумского аякса пост методом

var xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(fields) );

Ссылка на комментарий
Поделиться на других сайтах

файл аттачишь через аякс?

перезагружается страница, не вижу аякс загрузки файла

При чём тут файл прости?

Вопрос был в чём? "как отправить переменные в php-скрипт POST методом"

Я имел ввиду ответ без перезагрузки страницы.

 

собственно как отправить с помощью форумского аякса пост методом

Ну. И отправляется он там именно POST'ом.

 

Вот файлы в посты загружаются может как-то и не так.

Ссылка на комментарий
Поделиться на других сайтах

С ошибкой разобрался ( при вызове функции нужно было добавить return false )

 

По поводу post :

 

<form name=\"RAKETA777\" method=\"POST\" action=\"#\">
<input type=\"hidden\" value=\"{$this->clan_id}\" name=\"clan_id\">
...
<textarea rows=\"3\" name=\"text\" cols=\"60\"></textarea><br />
<input type=\"submit\" value=\"ОГОНЬ\" onclick=\"game_pusk(); return false;\">
</form>

 

 

fields['clan_id'] = document.forms['RAKETA777'].elements['clan_id'].value;

Верно ?

 

fields['text'] = document.forms['RAKETA777'].text.value;

или

fields['text'] = document.forms['RAKETA777'].elements['text'].value;

 

?

 

И потом в скрипте будут ли переменные доступны через $this->ipsclass->input или только через $_POST ?

 

Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Надо дебажить. Судя по ошибке, что-то со связью, как мне кажется. Можно уточнить на сайте Мозиллы.
Ссылка на комментарий
Поделиться на других сайтах

Надо дебажить. Судя по ошибке, что-то со связью, как мне кажется. Можно уточнить на сайте Мозиллы.

Я забыл добавить return false; после вызова функции.

Пост исправил.

Ссылка на комментарий
Поделиться на других сайтах

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

Проверяйте код построчно, записалось ли в fields всё что нужно.
Ссылка на комментарий
Поделиться на других сайтах

Сделал по другому :

 

...

var udar1 = document.forms['RAKETA777'].elements['udar1'].value;
var text = document.forms['RAKETA777'].elements['text'].value;
var clan_id = document.forms['RAKETA777'].elements['clan_id'].value;

...

var xmlreturn = xmlobj.process(url, 'POST', /*xmlobj.format_for_post(fields)*/'clan_id='+clan_id+'&udar1='+udar1+'&text='+text);

 

Заработало. ;)

 

Радио - это жесть :D

 

	if ( document.RAKETA777.udar1[0].checked === true ) { var udar1 = document.RAKETA777.udar1[0].value; }
else if ( document.RAKETA777.udar1[1].checked === true ) { var udar1 = document.RAKETA777.udar1[1].value; }
else if ( document.RAKETA777.udar1[2].checked === true ) { var udar1 = document.RAKETA777.udar1[2].value; }
else { var udar1 = 0; }

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

При записи в БД ( update ), в нее заносятся "кракозябры" вместо русских букв.

Добавлял header с самыми различными кодировками ( koi8-r,u, win1251, utf8, iso8859-1 ) - бесполезно.

Единственно меняются кракозябры, а в некоторых случаях просто знаки вопроса.

 

Делал print $var; - все нормально, русские буквы видны.

Запись в бд, и текст портится.

 

Если не использовать AJAX, то такой проблемы не возникает.

Кодировка таблиц в БД utf-8.

 

Можно какнибудь это исправить ?

Ссылка на комментарий
Поделиться на других сайтах

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.