Форум → Программирование → JavaScript → Ajax форма
Ajax форма
Страницы: ← Следующая страница →
-
Положение очень печальное.. заказчику на сайте как оказалось надо калькулятор аналогичный(точно такойже) как и у
http://autoins.ru/ru/osago/calculator/
Но воровать скрипты у актис сюстема как то не хочется.. к тому же всего и не сваруешь.
Аякс знаю только теоретически.
Как получать текущее значение формы я думаю смогу нагуглить, но было бы не плохо если бы всё таки расказали или дали ссылки чё покурить.
Основная загвоздка в том, как сделать вот этот выбор населённого пункта, я понимаю что надо составить аяксовый запрос на сервер, сервер на него пришлёт ответ и собственно всё, но как потом этот ответ распарсить?
Т.е. как вообще составить правильный запрос на сервер? и как на пыхе его принять и отправить обратно?
если не лень разжуйте пожалуйста этот калькулятор, заранее очень благодарен, просто и сроков нету самому разбираться, тестить и т.д. -
21 августа 2008 г. 1:23, спустя 1 час 12 минут 42 секунды
Калькулятор разжевывать не буду, но сами принципы попробую объяснить.
1. Берешь либу для работы с аджаксом :) (простейший вариант — JsHttpRequest, Мавру просьба не материться:))).
2. Дальше на примере, вот у меня эта штука сделана как раз аджаксом, объясняю:<script src="/JsHttpRequest/JsHttpRequest.js"></script>
<script language="javascript" type="text/javascript">
<!–
function encode_email() {
q = document.getElementById('email').value; // получаем значение текстового поля email
if (q != "") {
JsHttpRequest.query(
"/JsHttpRequest/backend_encode_email.php", // обработчик
{ "q": q }, // переменные, которые нужно передать в обработчик
function(result) { // функция, которая выполняется после того, как отработал обработчик
document.getElementById('emailresult').innerHTML = result["r"]; // впихиваем в див с ид emailresult подготовленный в обработчике код
},
false
);
} else {
document.getElementById('emailresult').innerHTML = '<b><font color="red">Вы не ввели e-mail адрес</font></b>';
} return false;
}
//–>
</script>
А в обработчике:require_once "JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$email = $_REQUEST['q'];
if (!preg_match ('/^((\S+)@([a-z0-9-]+)(\.)([a-z]{2,4})(\.?)([a-z]*)(,?)( ?))+$/i', $email)) {
$data = '<b><font color="red">Неверный формат e-mail адреса</font></b>';
} else {
$data = '<p><b>Первый способ:</b><div class="code">'.method_1($email).'</div><p>
<p><b>Второй способ:</b><div class="code">'.method_2($email).'</div><p>
<p><b>Третий способ:</b><div class="code">'.method_3($email).'</div><p>
<p><b>Четвертый способ:</b><div class="code">'.method_4($email).'</div><p>';
}
$_RESULT = array (
"r" => $data,
);
3. Все :) -
21 августа 2008 г. 2:56, спустя 1 час 32 минуты 40 секунд
Такс… спасибо большое.. в общих чертах понятно..
Т.е. я на пыхе отправляют массив, а яваскриптом его иннерХТМЛю? а не надо на жс проверки какие нить ставить типа пришёл ли ответ или нет?
И сразу вопрос, в том калькуляторе, после выбора региона в остальных появляется "идёт загрузка", как такую вещчь получить?
У мну с этим просто вообще трабл=( на ЖС ничё толком не писал.. -
21 августа 2008 г. 9:01, спустя 6 часов 4 минуты 31 секунду
а не надо на жс проверки какие нить ставить типа пришёл ли ответ или нет?
Надо. Прочти внимательно, еще это и это.https://smappi.org/ - платформа по созданию API на все случаи жизни -
21 августа 2008 г. 10:01, спустя 1 час 46 секунд
И сразу вопрос, в том калькуляторе, после выбора региона в остальных появляется "идёт загрузка", как такую вещчь получить?
В начале функции (до запроса бекенду) выводишь див с «идет загрузка», после получения результата его убираешь (document.getElementById(id).style.display = 'none';). -
21 августа 2008 г. 11:57, спустя 1 час 55 минут 38 секунд
Мавру просьба не материться
бля, вот хуле сразу мавер?!
возьми в пример jQuery и мавер будет на тя малицца -
21 августа 2008 г. 23:04, спустя 11 часов 7 минут 15 секунд
А подскажите пожалуйста, как мне забрать валуе с опшинов у селекта? обращаться к айдишнику селекта?
И смогу ли я сделать иннер.хтмл в селект по айдишнику, т.е. я как думаю, сделать так же переменную $data как sap показал, со всеми опшионами$data = <option> </option>;
$data .= <option> </option>;
$data .= <option> </option>;
….
и потом сделать
document.getElementById('select').innerHTML = result["r"];
получится ли так?
т.е. что бы избежать цикла по массиву на ЖС.
И все функции в яваскрипте на сколько я знаю срабатываю по определённому эвенту, как мне запустить допустим функцию result() сразу как пришёл ответ? -
21 августа 2008 г. 23:17, спустя 12 минут 28 секунд
Z-MODe, вот, подобное обсуждали http://pyha.ru/forum/topic/433.0https://smappi.org/ - платформа по созданию API на все случаи жизни -
21 августа 2008 г. 23:58, спустя 41 минуту 1 секунду
Z-MODe, хочешь успеть до утра и без трабл? Мой тебе совет, заюзай фреймворк типа JQuery, Prototype или JsHttpRequest для AJAX'a.https://smappi.org/ - платформа по созданию API на все случаи жизни -
21 августа 2008 г. 23:58, спустя 14 секунд
порадовала строкаif( navigator.userAgent.indexOf( "Opera" ) != -1 ) return null;
-
22 августа 2008 г. 0:01, спустя 3 минуты 23 секунды
adw0rd, Шарил бы я в яваскрипте. я изначально думал калькулятор сделать чисто серверный.. а тут ему вот как там надо.. а я в ЖС вааще ноль.. к тому же там только в одном месте надо заяксить, города эти.. а на остальное там реально куча условий просто.. эти условия пока соображу как.. ещё больше времени думаю пройдёт=( -
22 августа 2008 г. 0:06, спустя 4 минуты 13 секунд
попробуй вот этим города тянуть
там уже все сделано за тебя
http://mabp.kiev.ua/content/2008/04/08/autocomplete_by_your_own_hands/ -
22 августа 2008 г. 0:08, спустя 2 минуты 4 секунды
Z-MODe, еще раз говорю: в случае с JsHttpRequest есть обширная документация на РУССКОМ языке.
Без знаний JavaScript можно с легкостью ей (JsHttpRequest) пользоваться. Что не скажешь о том коде, на который ты привел ссылку.https://smappi.org/ - платформа по созданию API на все случаи жизни -
22 августа 2008 г. 0:09, спустя 1 минуту 22 секунды
CTAPbIu_MABP,if( isStupidIEVersion() ) return null;
:)https://smappi.org/ - платформа по созданию API на все случаи жизни -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!