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

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

  • NRG

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

    Spritz 26 ноября 2009 г. 12:10, спустя 3 минуты

    браузер соснет у тебя хуйка :)

    а сервер в это время сам у себя отсасывает :)

    phpdude, цук, твои высказывания самые мощные  =))))))))))
  • phpdude

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

    Spritz 26 ноября 2009 г. 12:11, спустя 1 минуту 41 секунду


    браузер соснет у тебя хуйка :)

    а сервер в это время сам у себя отсасывает :)

    phpdude, цук, твои высказывания самые мощные  =))))))))))
    а плюс детка?)
    Сапожник без сапог
  • NRG

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

    Spritz 26 ноября 2009 г. 12:13, спустя 1 минуту 47 секунд



    браузер соснет у тебя хуйка :)

    а сервер в это время сам у себя отсасывает :)

    phpdude, цук, твои высказывания самые мощные  =))))))))))
    а плюс детка?)
    поставил дедке плюс =))
  • phpdude

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

    Spritz 26 ноября 2009 г. 12:13, спустя 27 секунд




    браузер соснет у тебя хуйка :)

    а сервер в это время сам у себя отсасывает :)

    phpdude, цук, твои высказывания самые мощные  =))))))))))
    а плюс детка?)
    поставил дедке плюс =))
    хыы чмоки чмоки, я вас всех так лю =))
    Сапожник без сапог
  • Baboot

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

    Spritz 26 ноября 2009 г. 12:14, спустя 1 минуту 1 секунду

    phpdude, я не говорил что так лучше прошу заметить =)  
    ты сначала СОЗДАЕШЬ элемент <option> , потом делаешь выборку в дом дереве #region_id и проиводишь именение дом дерева - appendTo. это все тяжелые операции увы :(

    +appendTo - транслируется в $(A).append(B)…
    Да тяжело, но в случае даже из 50 элемениов FF 3,5 не напрягается
  • phpdude

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

    Spritz 26 ноября 2009 г. 12:18, спустя 3 минуты 21 секунду

    Baboot, я както делал календарь показывал тут кажется, такой большой планировщик полностью аяксовый, так вот там понял что делать так - плохой метод ))))))))))))))))))

    когда у меня была таблица 50 товаров * 4 недели * 7 дней в неделе = 1400 итераций. там я все по книжке

    $("<div/>").addClass("day shadow").html(data.products[j].html).appendTo("#cal");

    вот тогда то у меня посасывал браузер (на моем не самом медленном буке) как миленький
    Спустя 22 сек.
    я тоже не хотел сказать что ты не прав, но просто подметил на всякий
    Спустя 19 сек.
    ахуенная у мну цепочка на аве на шее ага? недавно в барахолке приобрел -))
    Сапожник без сапог
  • NRG

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

    Spritz 26 ноября 2009 г. 12:19, спустя 1 минуту 7 секунд

    то, что он не напрягается это не твоя заслуга,  атем более не твоего подхода…
    дуд правильно сказал, при больших пачках данных нехуй скидывать всю работу на DOM
  • Baboot

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

    Spritz 26 ноября 2009 г. 12:29, спустя 10 минут 19 секунд

    NRG, А я разве сказал что это моя заслуга? Я просто показал то что это выглядет как предложение которое можно перевести со словарем англ языка и ты поймешь что происходит. И если у тебя кол-во входных данных небольшое, то разница между лепкой строки и аппендом в ДОМ будет совершенно незначительная….

    PS: я понимаю что это разговор не о чем… ЧТо можно спорить что разница м/у 0,0002 и 0,0004сек состовляет аж 200%, но в рамках именно примера с небольшими данными это хуйня абсолютная и полная. И именно для МЕНЯ читаемость когда получает больший приотитет
  • NRG

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

    Spritz 26 ноября 2009 г. 12:28, спустя 23 часа 58 минут 59 секунд

    Baboot,
    дуд правильно сказал, при больших пачках данных нехуй скидывать всю работу на DOM
  • Baboot

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

    Spritz 26 ноября 2009 г. 12:32, спустя 3 минуты 34 секунды

    NRG, ответ касался первого предложения:
    то, что он не напрягается это не твоя заслуга, атем более не твоего подхода…
  • phpdude

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

    Spritz 26 ноября 2009 г. 12:36, спустя 4 минуты 12 секунд

    заебали сраться чмоки)
    Спустя 25 сек.
    дуд не хотел холивар устраивать на пустом месте, лучше бы DudeFrontend посмотрели!)
    Сапожник без сапог
  • Kostya

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

    Spritz 14 июня 2010 г. 18:44, спустя 200 дней 5 часов 8 минут

    Это, тоже начинающий)
    Тут вопрос такой, не мудрствуя лукаво, продублировал скрипт:
    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("rub2").innerHTML=req.responseText;}
    req.open(null,"select2.php",true);
    req.send({rub1:value});}

    в итоге получилось хорошо, но есть 1но НО!(
    как "обнулять" поиск кнопкой? обычный reset просто обнуляет 2 верхних поля…
    Заранее спасибо!
  • adw0rd

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

    Spritz 14 июня 2010 г. 19:58, спустя 1 час 13 минут 28 секунд

    onclick="document.getElementById("rub2").innerHTML=''" на кнопку
    Спустя 19 сек.
    и не жава, а жаваскрипт
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Kostya

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

    Spritz 15 июня 2010 г. 10:51, спустя 14 часов 53 минуты 42 секунды

    Может я просто не до конца код выложил…
    <script>
    function doload(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("rub2").innerHTML=req.responseText;}
    req.open(null,"select2.php",true);
    req.send({rub1:value});}
    </script>
    <script>
    function doload2(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("rub3").innerHTML=req.responseText;}
    req.open(null,"select3.php",true);
    req.send({rub2:value});}
    </script>


    Файлик select.php
    <form action="" method="POST">

    res=mysql_query('SELECT * FROM `SEARCH_rub1` order by `name`');
    $str='';
    $tpl=file_get_contents('template/search_item.tpl');
    while ($a=mysql_fetch_assoc($res))
    {
    $str.=str_replace(array('{VAL}','{TEXT}'),array($a['id'],$a['name']),$tpl);
    }
    $tpl2=file_get_contents('template/search_form.tpl');
    $html='';
    $html.=str_replace('{SELECT_ITEM}',$str,$tpl2);
    echo $html;

    <div id="rub2"></div>
    <div id="rub3"></div>
    <input type="reset">


    Файлик select2.php
    require("JsHttpRequest.php"); //Подключаем библиотеку
    $JsHttpRequest=new JsHttpRequest("utf-8"); //Создаем экземпляр класса, указываю рабочую кодировку.
    include_once('modules/db.php');
    mysql_query("set names utf8");
    $res=mysql_query('select * from `SEARCH_rub2` where `id_rub1`="'.intval($_REQUEST['rub1']).'" order by `name`');
    $str='';
    $tpl=file_get_contents('template/search_item.tpl');
    while ($a=mysql_fetch_assoc($res))
    {
    $str.=str_replace(array('{VAL}','{TEXT}'),array($a['id'],$a['name']),$tpl);
    }
    $tpl2=file_get_contents('template/search_form2.tpl');
    $str2='';
    $str2.=str_replace('{SELECT_ITEM}',$str,$tpl2);
    echo $str2;


    Файлик select3.php
    require("JsHttpRequest.php"); //Подключаем библиотеку
    $JsHttpRequest=new JsHttpRequest("utf-8"); //Создаем экземпляр класса, указываю рабочую кодировку.
    include_once('modules/db.php');
    mysql_query("set names utf8");
    $res=mysql_query('select * from `SEARCH_rub3` where `id_rub2`='.$_REQUEST['rub2']);
    $str='';
    $tpl=file_get_contents('template/search_item.tpl');
    while ($a=mysql_fetch_assoc($res))
    {
    $str.=str_replace(array('{VAL}','{TEXT}'),array($a['id'],$a['name']),$tpl);
    }
    $tpl2=file_get_contents('template/search_form3.tpl');
    $str2='';
    $str2.=str_replace('{SELECT_ITEM}',$str,$tpl2);
    echo $str2;

    Так вот вопрос в том, чтобы сделать по кнопочке ресет возврат в первоночальное состояние с 1ним селектом…
    рабочий вариант можно глянуть тут:http://temp.web-energo.by/5/select.php

  • Sinkler

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

    Spritz 15 июня 2010 г. 11:05, спустя 13 минут 11 секунд

    у меня обычно всё зависит от первого селекта, так что обычно достаточно сделать в первом дефолтовый оптион selected
    Спустя 74 сек.
    типа так http://scanlot.ru/user/reg.php

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