ФорумПрограммированиеПыхнуть хотите?F.A.Q. → Интерактивный select без перезагрузки страницы

Интерактивный select без перезагрузки страницы

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 2:42, спустя 5 минут 2 секунды

    GRAFLEKX, я раньше использовал прототайп… и jshttpdrequest, и могу сказать - лучше используйте jquery (либо dojo и extjs).
    Приведите код, авось и поможем
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • GRAFLEKX

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 27 июля 2009 г. 3:06, спустя 23 минуты 46 секунд

    Да понимаете, много уже завязано на Прототайпе, переделывать как серпом по одному месту. Код, да код простой, почти как в примере..
    Есть файл с селектом:
    <form action="select.php" method="POST">
    <select name="country">
    <option value="no" selected>Выберите страну…</option>
    <option value="russia">Россия</option>
    <option value="ukraine">Украина</option>
    </select>
    <br><br>
    <div id="result"></div>
    <br><br>
    <input type="submit" value="Отправить">
    </form>


    Нужно чтобы при выборе селекта <div id="result"></div> выводил инфу из второго файла selekt2.php

    case "russia":
    $html="<select name=\"provider\">
    <option>МТС</option>
    <option>Билайн</option>
    <option>Мегафон</option>
    </select>";
    break;

    case "ukraine":
    $html="<select name=\"provider\">
    <option>KievGSM</option>
    <option>UKRGSM</option>
    </select>";
    break;

    default: $html=null;
    endswitch;
    echo $html;


    Тоесть все тоже самое как в примере, но на Прототайпе.
    Там правда у меня еще запросы в мускул идут, но это уже лишнее, я сам сделаю. Проблема в том, что не силен я в JS, понимаю что мат часть учить нужно, да все руки ни как не доходят. Вот разгребу немного и засяду учить.
    Дело в том, что при подключении библиотеки Котерова, у меня даже элементарный JS перестал работать:
    function calculater_in(){
    document.main.in_val.value=document.main.in_val.value.replace(",",".");
    document.main.out_val.value=Math.floor(document.main.in_val.value*document.main.curs.value*100)/100;}
    function calculater_out(){
    document.main.out_val.value=document.main.out_val.value.replace(",",".");
    document.main.in_val.value=Math.ceil(document.main.out_val.value/document.main.curs.value*100)/100;}
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 3:36, спустя 30 минут 7 секунд

    GRAFLEKX, а вы пробовали юзать JsHttpRequest-prototype.js ?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • GRAFLEKX

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 27 июля 2009 г. 3:40, спустя 4 минуты 14 секунд


    GRAFLEKX, а вы пробовали юзать JsHttpRequest-prototype.js ?
    Да, пробовал, беспонтово. Некоторые функции начинают работать, но в основном прототайп глохнет. При том, если подключить прототайп перед библиотекой Котерова, то глохнет его скрипт.
    На форуме у них тоже отмалчиваются на этот счет. При том такой баг не только у меня, там много народа на это жалуется, обещают пофиксить в следующей версии.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 3:52, спустя 11 минут 57 секунд

    GRAFLEKX, я не понимаю, как мы можем помочь, если проблемы у библиотеки котерова или у прототайпа?
    Исправить их баги нам надо?) Предлагаю заюзать jQuery для AJAX, исключив jshttprequest

    И еще, расскажите как именно ошибки проявляются? Ajax не работает? или прототайпжс валится?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • GRAFLEKX

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 27 июля 2009 г. 4:06, спустя 14 минут 2 секунды

    У прототайпа проблем нет, все работало до того как я подключил библиотеку Котерова и реализовал с её помощью подгрузку с другого файла (как в примере в этой статье.).
    Подгрузка работает, но все что работало на прототайпе - перестало работать.
    Соответственно библиотеку Котерова я отключил и хочу реализовать подгрузку данных (код файлов привел выше) средствами прототайпа, а вот КАК это сделать увы не знаю.
    И еще, расскажите как именно ошибки проявляются? Ajax не работает? или прототайпжс валится?
    вот именно что прототайпжс падает.
    В частности перестают работать new Ajax.Updater…
    Вы меня не поняли, мне не нужно исправлять баги в библиотеке Котерова :))), я её отключил, я прошу помочь реализовать на прототайпе пример http://pyha.ru/forum/topic/86.msg61522#msg61522
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 4:10, спустя 3 минуты 40 секунд

    То есть вам надо организовать ajax только с помощью prototypejs. Я сам не юзал ajax в прототайп, и не имею сейчас его под рукой, поэтому вы буде проверять у себя.

    Начнем с документации http://www.prototypejs.org/learn/introduction-to-ajax тут вроде все просто, вы уже это сделали? Есть ошибки?
    Спустя 48 сек.
    http://www.prototypejs.org/api/ajax/request
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • GRAFLEKX

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 27 июля 2009 г. 5:37, спустя 1 час 26 минут 39 секунд


    То есть вам надо организовать ajax только с помощью prototypejs. Я сам не юзал ajax в прототайп, и не имею сейчас его под рукой, поэтому вы буде проверять у себя.

    Начнем с документации http://www.prototypejs.org/learn/introduction-to-ajax тут вроде все просто, вы уже это сделали? Есть ошибки?
    Спустя 48 сек.
    http://www.prototypejs.org/api/ajax/request

    Спасибо, я знаю сайт автора прототайпа :))), почитаю на досуге, мануал всегда полезен.
    Тупанул я конечно сильно, но съел шоколадку, выпил апельсинового сока - мозги включились (не сплю просто уже 3-и сутки) и сделал.
    Проще некуда, за что я и люблю прототайп. Вариант такой:
    файл select.php:
    echo "<script src=\"прототип.js\"></script>"
    ."<script>"
    ."function doload(value){\n"
    ."new Ajax.Updater('selekt', 'select2.php', {parameters: { country: value }});}\n"
    ."</script>"
    ."<select name=\"country\" onchange=\"doload(this.value);\">"
    ."<option value=\"no\" selected>Выберите страну…</option>"
    ."<option value=\"russia\">Россия</option>"
    ."<option value=\"ukraine\">Украина</option>"
    ."</select>"
    ."<br><br>"
    ."<div id=\"selekt\"></div>";

    файл select2.php:
    switch($_REQUEST["country"]):
    case "russia":
    $html="<select name=\"provider\">
    <option>МТС</option>
    <option>Билайн</option>
    <option>Мегафон</option>
    </select>";
    break;
    case "ukraine":
    $html="<select name=\"provider\">
    <option>KievGSM</option>
    <option>UKRGSM</option>
    </select>";
    break;
    default: $html=null;
    endswitch;
    echo $html;

    Вот собственно и все, без лишних наворотов…
    Можно конечно и через new Ajax.Request, но мне это не нужно…
    Спасибо за помощь…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 5:40, спустя 2 минуты 52 секунды

    GRAFLEKX, а я не люблю прототайп, за то, что он тормознутый. И jq проще него пожалуй…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • GRAFLEKX

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 27 июля 2009 г. 5:46, спустя 6 минут 10 секунд

    Ес

    GRAFLEKX, а я не люблю прототайп, за то, что он тормознутый. И jq проще него пожалуй…

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

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 27 июля 2009 г. 5:47, спустя 59 секунд


    Ес

    GRAFLEKX, а я не люблю прототайп, за то, что он тормознутый. И jq проще него пожалуй…

    Есть тормоза, не спорю, но для моих данных и целей вполне подходит.
    jQuery интересная библиотека, встречался с ней, но небыло времени разобраться, как нибудь займусь ей обязательно.
    ты многое потерял…
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 27 июля 2009 г. 17:52, спустя 12 часов 4 минуты 57 секунд

    GRAFLEKX, возьми отсюда: http://akosta.info/jscripts/search.js
    столет назад делал
    все умрут, а я изумруд
  • dobson

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 5:46, спустя 18 дней 11 часов 54 минуты

    Подскажите, а как сделать что бы скрипт выполнялся по нажатию кнопки:
    типа

    <input type="submit" value="Отправить" onclick="Капец, что тут написать?">
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 15 августа 2009 г. 5:49, спустя 2 минуты 21 секунду

    какой скрипт?
    там можно функцию прописать типа onclick="StartCode();"…
    все умрут, а я изумруд
  • dobson

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 5:59, спустя 10 минут 6 секунд

    бля не так вопрос задал ))
    вобщем в яваскрипте полный ноль, надо что бы по событию onclick на кнопке заработала функция doload(). Так вот нифига не могу сообразить что внутри в скобках написать.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!