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

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

  • }/{EHR

    Сообщения: 734 Репутация: N Группа: Адекваты

    Spritz Ноя. 28, 2010, 11:31 п.п., спустя 6 минут 11 секунд


    работает
    а что такого сверхъестественного в сафари под маком?
    Да хуй знает почему у заказчика не работает. Он сказал что у него сафари и мак.
  • md5

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

    Spritz Ноя. 28, 2010, 11:41 п.п., спустя 10 минут 12 секунд

    пусть не пиздит, все работает
    все умрут, а я изумруд
  • guardlight

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

    Spritz Дек. 5, 2010, 2:45 п.п., спустя 6 дней 15 часов 4 минуты

    помогите 3 селект привязать…если добавляю еще одну функцию doload и она не передает id опшина на селект(((вот кодик
    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
    req.open(null,"select2.php",true);
    req.send({country:value});}
    </script>
    <script>
    function download(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("res").innerHTML=req.responseText;}
    req.open(null,"select3.php",true);
    req.send({country:value});}
    </script>
    <form action="sript.php" method="POST">
    <select name="country" onchange="doload(this.value);">
    <?php
    $result = mysql_query("SELECT * FROM categor", $db);
    if (!$result) {
    echo "<p>Заброс на выбоку из базы не выполнен…Поставить админа в известность [email protected]</br><strong>Код ошибки</strong></p>";
    exit(mysql_error());
    }
    if(mysql_num_rows($result) > 0)
    {
    $myrow = mysql_fetch_array($result);
    do {
    printf ("<option value='%s'>%s</option>",$myrow['name'],$myrow['title']);}
    while ($myrow = mysql_fetch_array($result));
    }
    else { echo "<p>Запрос не может быть выполене информации в базе не существует</p>";
    exit;}


    ?>
    </select>
    <br><br>
    <div id="result"></div>
    <br><div id="res"></div><br>
    <input type="submit" value="Отправить">
    </form>

    Проблема в том что в селект3 не приходят айди элементов(
  • guardlight

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

    Spritz Дек. 5, 2010, 5:57 п.п., спустя 3 часа 12 минут 12 секунд

    вот ссылочка на проэкт http://invertorpc.com/img/select.php
  • Alexei8

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

    Spritz Окт. 25, 2011, 10:27 п.п., спустя 324 дня 3 часа 30 минут

    Уважаемые профессионалы помогите сделать третий, а если можно и четвертый Связанны select именно для этого скрипта (Представлен в начале темы). Я внимательно прочитал все ответы но кода как это сделать так и не нашёл.
  • Alexei8

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

    Spritz Окт. 25, 2011, 11:02 п.п., спустя 35 минут 2 секунды

    Для файла select.php
    <script>
    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
    req.open(null,"select2.php",true);
    req.send({country:value});}
    </script>

    <script>
    function doload2(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result2").innerHTML=req.responseText;}
    req.open(null,"select3.php",true);
    req.send({country:value});}
    </script>


    <!– Нетрудно догадаться, что мы сделали. Смотрите: ниже мы объявим тег select, в котором пропишем вызов функции doload с параметром this.value, то есть с выбранным в select`e значением. А вышенаписанная функция посылает запрос в скрипт select2.php и передаст ему значение country=value. Затем результат выведет в элемент с id=result. Итак, поехали… –>

    <!– Создаем форму –>

    <form action="sript.php" method="POST">

    <!– Теперь пихаем в нее первый select –>

    <select name="country" onchange="doload(this.value);">
    <option value="no" selected>Выберите страну…</option>
    <option value="russia">Россия</option>
    <option value="ukraine">Украина</option>
    </select>

    <br><br>

    <!– Вставляем тэг с нашим идентификатором, вместо которого у нас будет появляться второй select –>

    <div id="result"></div>

    <br><br>

    <div id="result2"></div>

    <br><br>



    Для файла select2.php


    select.php

    case "russia":
    $html="<select name=\"provider\"   onchange='doload2(this.value)' >
    <option value='1' >МТС</option>
    <option value='2' >Билайн</option>
    <option value='3' >Мегафон</option>
    </select>";
    break;

    // С Россией разобрались. Переходим к Украине

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


    соотвественно сделал файл select3.php
    <?
    require("JsHttpRequest.php"); //Подключаем библиотеку
    $JsHttpRequest=new JsHttpRequest("windows-1251"); //Создаем экземпляр класса, указываю рабочую кодировку.

    //Далее все просто. В зависимости от выбранного параметра в первом select`e, заполняем переменную $html необходимым кодом.

    switch($_REQUEST["country"]):

    //Поехали…

    case "1":
    $html="<select name=\"new\"    ">
    <option>МТС 1</option>
    <option>МТС 2</option>
    <option>МТС 3</option>
    </select>";
    break;



    //С Украиной тоже разобрались. Далее можно понапихать еще чего-нибудь (не забывая редактировать первый select в первом файле). Но мы пока закончим на этом.

    default: $html=666;
    endswitch;

    //В общем-то, все. Теперь просто выводим переменную $html, которую успешно "поймает" наша функция doload().

    echo $html;
    ?>
    Спустя 112 сек.
    черным указаны изменения которые были внесены
  • NRG

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

    Spritz Окт. 25, 2011, 11:03 п.п., спустя 49 секунд


    черным указаны изменения которые были внесены
    разноцветным текстом выделено то, что должно быть обрамлено в бб коды
  • fedottt

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

    Spritz Янв. 12, 2012, 4:55 п.п., спустя 78 дней 17 часов 51 минуту

    а как бы сделать нечто типа F5 ?
    пример:
    я выбрал из списка пункт, скрипт побегал, показал мне результат -> таблицу с кучей данных.
    я там поправил пару значений и хочу обновить то что есть на экране.
    как бы это сделать?
  • fedottt

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

    Spritz Янв. 12, 2012, 5:03 п.п., спустя 8 минут 41 секунду

    вопрос снят
    заменил onchange на onclick
  • qwest

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

    Spritz Фев. 5, 2012, 12:55 п.п., спустя 23 дня 19 часов 51 минуту

    У меня стоит задача сделать аналог вывода данных как здесь http://www.pegast.ru/rus/top/cuba/nhotels.
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz Фев. 5, 2012, 1:55 п.п., спустя 1 час 8 секунд


    У меня стоит задача сделать аналог вывода данных как здесь http://www.pegast.ru/rus/top/cuba/nhotels.



    И?
  • master

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

    Spritz Фев. 5, 2012, 2:01 п.п., спустя 6 минут 6 секунд

    http://www.pegast.ru/rus/top/cuba/nhotels

    почему так много сайтов с полным отсутствием дизайна?
    вопрос риторический
    не всё полезно, что в swap полезло
  • technobulka

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

    Spritz Фев. 5, 2012, 2:18 п.п., спустя 16 минут 52 секунды


    У меня стоит задача сделать аналог вывода данных как здесь http://www.pegast.ru/rus/top/cuba/nhotels.
    И?

    хвастаеццо, видать))
    Высокоуровневое абстрактное говно
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz Фев. 5, 2012, 2:21 п.п., спустя 2 минуты 30 секунд

    Да нормально, главное чтобы не вырвиглазно, прибыль идет и хрен с ним.
  • Абырвалг

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

    Spritz Фев. 5, 2012, 2:30 п.п., спустя 9 минут 10 секунд

    master, тоже задаюсь подобным вопросом. Но как видно - это все второстепенное. Свою функцию они выполняют (зарабатывание бабла). Вот тот же ибей взять - это ж фу пиздец, какой же он хуевый, неудобный. А какие там обороты?

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