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

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

  • phpdude

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

    Spritz 23 апреля 2009 г. 2:40, спустя 4 минуты 2 секунды



    mario, понимаешь ли, но я вижу что ты не понимаешь … <html> и проча яхуйня не должны быть в файрбаге. там только данные { id: …. } должны быть. такой формат упаковки данных называется json data. а у тебя там кусок кода страницы и в центре json data. одним словом хуйня сраная. отдели ифами html от json тогда и продолжим говорить ;)

    да не понимаю… :(
    и как понять отдел инфами?
    расставь ифы так, чтобы все json данные были без хтмла. другими словами логику пересмотри и найди логик ошибки
    Сапожник без сапог
  • adw0rd

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

    Spritz 23 апреля 2009 г. 3:01, спустя 20 минут 36 секунд

    И почитай про JSON. А у меня работает http://adw0rd.ru/files/test/ajax.php?prop_select
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mario

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

    Spritz 23 апреля 2009 г. 3:08, спустя 6 минут 56 секунд


    И почитай про JSON. А у меня работает http://adw0rd.ru/files/test/ajax.php?prop_select

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

    if (isset)
    elseif (isset)

    че тут можно придумать… :(
  • mario

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

    Spritz 23 апреля 2009 г. 3:13, спустя 4 минуты 38 секунд

    нет, это реально пиздец, я незнаю почему но у меня заработало…
    я нечего не менял… логика вся та же остаалась.
  • adw0rd

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

    Spritz 23 апреля 2009 г. 3:15, спустя 2 минуты 2 секунды

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

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

    Spritz 23 апреля 2009 г. 3:18, спустя 3 минуты 10 секунд


    mario, от меня теперь что-то требуется?

    да твое присутствие, как ты пришел так и заработало… ;)
    а по json есть литература или ты про документацию читать?
  • adw0rd

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

    Spritz 23 апреля 2009 г. 3:42, спустя 24 минуты 36 секунд

    mario, там ничего сложного, это простейший формат.

    http://ru.wikipedia.org/wiki/JSON
    http://json.org/json-ru.html

    PHP:
    [man]json_encode[/man]
    [man]json_decode[/man]
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • developer

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

    Spritz 21 мая 2009 г. 13:26, спустя 28 дней 9 часов 43 минуты

    Собственно в чём проблемма, есть три параметра: Модель - марка - год, скрипт работает нормально, но ситуация в чём, если выбираем марку, потом модель, потом год выводит последний параметр - текст, если берем и меняем в этом списке первую - модель, то все остальные как были так и остаются с прошлыми параметрами, приходится проходить путь выбора по новой.

    sript.php
    <script src="JsHttpRequest.js"></script>

    <script>

    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){

    if(req.readyState==4){
    document.getElementById("model").innerHTML=req.responseText;
    }

    }
    req.open(null,"model.php",true);
    req.send({model:value});}


    function doload2(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){

    if(req.readyState==4) { document.getElementById("year").innerHTML=req.responseText; }

    }
    req.open(null,"year.php",true);
    req.send({year:value});}


    function doload3(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){

    if(req.readyState==4) { document.getElementById("radius").innerHTML=req.responseText; }

    }
    req.open(null,"radius.php",true);
    req.send({radius:value});}

    </script>


    <form action="sript.php" method="POST" name="MainForm">
    <select name="country" class="selector" onchange="doload(this.value);">
    <option value="no" selected>Марка</option>
    <option value="Alfa">Alfa Romeo</option>
    <option value="Aston">Aston Martin</option>
    </select>
    </form>

    <div id="model">
    <select class="selector" disabled>
    <option>Все</option>
    </select>
    </div>
    <br />

    <div id="year">
    <select class="selector" disabled>
    <option>Все</option>
    </select>
    </div>
    <br />


    model.php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");

    switch($_REQUEST["model"]):

    case "no":
    $html="<select class=\"selector\" disabled>
    <option>Все</option>
    </select>";
    break;

    case "Alfa":
    $html="<select name=\"year\" class=\"selector\" onchange=\"doload2(this.value);\">
    <option value=\"no\" selected>Выберите</option>
    <option value=\"model_alfa_145\">145</option>
    <option value=\"model_alfa_145gta\">145 GTA</option>
    <option value=\"model_alfa_145\">146</option>
    <option value=\"model_alfa_147\">147</option>
    <option value=\"model_alfa_147\">156</option>
    <option value=\"model_alfa_147\">156 Sportwagon</option>
    <option value=\"model_alfa_147\">GT 04</option>
    <option value=\"model_alfa_147\">164 3,0 V6</option>
    </select>";
    break;


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


    year.php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");

    switch($_REQUEST["year"]):

    case "no":
    $html="<select class=\"selector\" disabled>
    <option value=\"no\" selected>Выберите</option>
    </select>";
    break;

    case "model_alfa_145":
    $html="<select name=\"country3\" class=\"selector\" onchange=\"doload3(this.value);\">
    <option value=\"no\" selected>Выберите</option>
    <option value=\"year_alfa_145_1900\">все года</option>
    </select>";
    break;

    case "model_alfa_145gta":
    $html="<select name=\"country3\" class=\"selector\" onchange=\"doload3(this.value);\">
    <option value=\"no\" selected>Выберите</option>
    <option value=\"year_alfa_147_1900\">все года</option>
    </select>";
    break;

    case "model_alfa_147":
    $html="<select name=\"country3\" class=\"selector\" onchange=\"doload3(this.value);\">
    <option value=\"no\" selected>выберите</option>
    <option value=\"year_alfa_147_1900\">все года</option>
    </select>";
    break;


    default: $html=null;
    endswitch;

    echo $html;


    radius.php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");

    switch($_REQUEST["radius"]):

    case "no":
    $html=null;
    break;

    case "year_alfa_145_1900":
    $html="4x98";
    break;

    case "year_alfa_147_1900":
    $html="5x98";
    break;


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


    Не пойму как сделать обнуление пораметров после изменения вышестоящего :(
  • adw0rd

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

    Spritz 21 мая 2009 г. 13:55, спустя 29 минут 16 секунд

    Модель - марка - год, скрипт работает нормально, но ситуация в чём, если выбираем марку, потом модель, потом год выводит последний параметр - текст, если берем и меняем в этом списке первую - модель, то все остальные как были так и остаются с прошлыми параметрами, приходится проходить путь выбора по новой.


    А вы хотите после того как изменили "Модель" что бы "Марка" и "Год" вставали на первую позицию (по умолчанию)?
    Или что?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • developer

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

    Spritz 21 мая 2009 г. 13:59, спустя 3 минуты 39 секунд

    да, именно. сделал по корявому:

    sript.php
    onchange="doload(this.value); doload2(this.value); doload3(this.value);"


    model.php
    doload2(this.value); doload3(this.value);"


    даже на локали скрипт стал долго работать :(
  • adw0rd

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

    Spritz 21 мая 2009 г. 14:07, спустя 7 минут 38 секунд

    developer, надо средствами самого JS сбрасывать, а не ajax'ом тянуть
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • developer

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

    Spritz 21 мая 2009 г. 14:18, спустя 11 минут 5 секунд

    а как это сделать не подскажите пожалуйста?
  • adw0rd

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

    Spritz 21 мая 2009 г. 14:46, спустя 28 минут 12 секунд

    developer, http://wdh.suncloud.ru/dhtml08.htm#ref4834

    focus() Помещает фокус на данный элемент.


    То есть надо просто на первый элемент сделать фокус
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • developer

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

    Spritz 21 мая 2009 г. 15:01, спустя 14 минут 58 секунд

    не понимаю, можно на живом примере?
  • adw0rd

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

    Spritz 21 мая 2009 г. 15:20, спустя 18 минут 47 секунд

    секунду, сейчас приведу пример
    https://smappi.org/ - платформа по созданию API на все случаи жизни

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