tarantas Опубликовано 29 Мая 2008 Жалоба Поделиться Опубликовано 29 Мая 2008 Доброго времени суток. Есть скрипт : 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 ?Заранее спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 29 Мая 2008 Автор Жалоба Поделиться Опубликовано 29 Мая 2008 И еще один злободневный вопрос.Начинает выполняться аякс, пишут типа загрузка и тут бах - страница обновляется.С чем это можно быть связано ? Раздражает очень.Причем скрипт самый простейший, например 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; Спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 31 Мая 2008 Жалоба Поделиться Опубликовано 31 Мая 2008 Скачайте "Ajax Быстрый ответ" от Sannis'а и посмотрите, как сделано там.) Конкретно - js файл. Возможно, ошибаюсь, но вроде бы там через POST отправляется. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 31 Мая 2008 Жалоба Поделиться Опубликовано 31 Мая 2008 Можно ещё проще, поиском по слову post в папке скриптов форума Неужели не нашлось примеров? P.S. Я не обещаю что это именно post. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 1 Июня 2008 Жалоба Поделиться Опубликовано 1 Июня 2008 аякс никогда не отправляет по методу пост, то что там написано - просто наукообразиеесли бы аякс отправлял пост, то можно было бы отправлять файлы прямо по document.getElementById('file').valueа так приходится извращатся с iframe Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 1 Июня 2008 Жалоба Поделиться Опубликовано 1 Июня 2008 По-моему мы эту тему уже затрагивали и я тогда сказал, что если бы ажакс не отправлял данные по методу POST то данные, переданные через ajax были бы недоступны в переменных $_POSTТак что Архар, мне непонятно твоё мнение. если бы аякс отправлял пост, то можно было бы отправлять файлы прямо по document.getElementById('file').valueа так приходится извращатся с iframeУ себя на форуме я отправляю через ажакс, никкакого iframe там нет. Использую getElementById. Как сделано в стандартном форуме 2.х я не знаю, но то что отправлять через POST можно, это факт.Возможно конечно именно в стандартном IPB отправляется через GET, но я у себя на форуме отправляю через POST.Но вопрос ведь был про ajax вообще, а не про "ajax в форуме ipb" не так ли? Поэтому со всей ответственностью могу заверить что через ajax отправлять данные в POST можно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 1 Июня 2008 Жалоба Поделиться Опубликовано 1 Июня 2008 файл аттачишь через аякс?перезагружается страница, не вижу аякс загрузки файла про $_POST хрен знаетибо используем же мы $_POST['Post'] в аякс-быстром-ответе Но вопрос ведь был про ajax вообщеназвание темы - Форуский AJAX собственно как отправить с помощью форумского аякса пост методомvar xmlreturn = xmlobj.process( url, 'POST', xmlobj.format_for_post(fields) ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 1 Июня 2008 Жалоба Поделиться Опубликовано 1 Июня 2008 файл аттачишь через аякс?перезагружается страница, не вижу аякс загрузки файлаПри чём тут файл прости?Вопрос был в чём? "как отправить переменные в php-скрипт POST методом"Я имел ввиду ответ без перезагрузки страницы. собственно как отправить с помощью форумского аякса пост методомНу. И отправляется он там именно POST'ом. Вот файлы в посты загружаются может как-то и не так. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 1 Июня 2008 Жалоба Поделиться Опубликовано 1 Июня 2008 короче понятно, пошел почитал википедию, неправ, пост можно) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 3 Июня 2008 Автор Жалоба Поделиться Опубликовано 3 Июня 2008 С ошибкой разобрался ( при вызове функции нужно было добавить 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 ? Спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 3 Июня 2008 Жалоба Поделиться Опубликовано 3 Июня 2008 Надо дебажить. Судя по ошибке, что-то со связью, как мне кажется. Можно уточнить на сайте Мозиллы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 3 Июня 2008 Автор Жалоба Поделиться Опубликовано 3 Июня 2008 Надо дебажить. Судя по ошибке, что-то со связью, как мне кажется. Можно уточнить на сайте Мозиллы.Я забыл добавить return false; после вызова функции.Пост исправил. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 4 Июня 2008 Жалоба Поделиться Опубликовано 4 Июня 2008 Переменный будут доступны и там и там, в input в очищенном виде. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 4 Июня 2008 Автор Жалоба Поделиться Опубликовано 4 Июня 2008 Недоступны нигде Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 4 Июня 2008 Жалоба Поделиться Опубликовано 4 Июня 2008 Проверяйте код построчно, записалось ли в fields всё что нужно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 4 Июня 2008 Автор Жалоба Поделиться Опубликовано 4 Июня 2008 Сделал по другому : ... 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); Заработало. Радио - это жесть 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; } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
tarantas Опубликовано 3 Июля 2008 Автор Жалоба Поделиться Опубликовано 3 Июля 2008 При записи в БД ( update ), в нее заносятся "кракозябры" вместо русских букв.Добавлял header с самыми различными кодировками ( koi8-r,u, win1251, utf8, iso8859-1 ) - бесполезно.Единственно меняются кракозябры, а в некоторых случаях просто знаки вопроса. Делал print $var; - все нормально, русские буквы видны.Запись в бд, и текст портится. Если не использовать AJAX, то такой проблемы не возникает.Кодировка таблиц в БД utf-8. Можно какнибудь это исправить ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 5 Июля 2008 Жалоба Поделиться Опубликовано 5 Июля 2008 Можно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.