ФорумПрограммированиеJavaScript → помогите со связянным списком select и checkbox

помогите со связянным списком select и checkbox

  • sbury

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

    Spritz 19 января 2011 г. 16:12

    всем доброго дня. помогите в решении одной проблемы. В принципе вроде все работает, как для меня, но так как я javascript практически не знаю , то не могу понять как можно добиться требуемой мне фичи. помогите кто может. Есть выпадающий список select который при событии onchange вызывает бакенд и тот возвращает толпу checkbox's. Но, при старте страницы этого списка нет. Как мне правильно сделать инициализацию чтобы список выпадал сразу при загрузке страницы в первый раз, а не только после первого изменения в select?
    Наверно что надо как-то вызвать doload(), но как это сделать правильно я не знаю.(( Да использую библиотеку JsHttpRequest.
    Вот код:

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

    <?php

    $q = _query("SELECT country_in,country_out FROM country");
    while($f=_fetch($q)){
    $sw_country_test.=option(value(win_utf8($f["country_in"])),win_utf8($f["country_in"]));
    }

    $pp="<select name=\"country\" onchange=\"doload(this.value);\">";
    $pp.=$sw_country_test;
    $pp.="</select>";

    $search =
    form(name("out").action("/s/").method("post"),
    table(border(0),
    tr(no(),
    .td(valign("top"),$pp)
    .td(valign("top"),div(id("result"),""))
    .td(no(),input(id("select1").name("clik_test").type("hidden").value($clik_test)))
    .td(no(),input(type("submit").name("find").value("Далее")))
    ).input(type("hidden").name("action").value("country"))
    )
    );

    ?>


    select.php

    <?php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");
    $pp = $_REQUEST["country"];

    #MySQL
    $db=con_srv_p();
    mysql_set_charset('cp1251',$db);

    $f=_fetch($q=_query("SELECT * FROM country WHERE country_in='".utf8_win($pp)."'"));
    $city=$f["country_out"];

    $ar=array();
    $q=_query("SELECT * FROM hotel WHERE hotel_country='".$city."' OR hotel_country='".$pp."'");
    while($f=_fetch($q)){
    $vvv=(string) array_search($f["hotel_city"],$ar);
    if($vvv==""){
    $html .= input(type("checkbox").name($f["hotel_id"]).checked("N"))." ".font(no(),$f["hotel_city"])."<br>";
    array_push($ar,$f["hotel_city"]);
    }
    }

    #close DB
    dc_srv($db);

    echo $html;

    ?>

  • NRG

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

    Spritz 19 января 2011 г. 16:36, спустя 23 минуты 17 секунд

    Да использую библиотеку JsHttpRequest.

    выкинь ее.
    юзай jquery или prototype.
    на dom:load можно повесится, но как по мне, то лучше сразу отдавать контент вместо того чтобы при загрузке странницы сразу делать аякс-запрос.

    чмоки
  • sbury

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

    Spritz 19 января 2011 г. 18:41, спустя 2 часа 5 минут 7 секунд

    помогите разобраться как правильно вызвать обработчик для checkbox и gпередать флажок в select.php


    <script>
    function doload1(){
    var req=new JsHttpRequest();

    req.onreadystatechange=function(){

    if(req.readyState==4)
    }
    req.open(null,"/parts/select.php",true);

    </script>

    <form name="form1">
    <input type="checkbox" onclick="doload1(this)" name="luks">
    </form>
  • Абырвалг

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

    Spritz 19 января 2011 г. 18:48, спустя 7 минут 20 секунд

    doload1(el){
    el.checked;
    }
  • sbury

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

    Spritz 19 января 2011 г. 18:55, спустя 7 минут 13 секунд

    я же говорил что полный нуль в джава. Можно полностью описать эту функция с показом вызова select.php из нее, иначе я ничего не пойму. Спасибо
  • Frozzeg

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

    Spritz 19 января 2011 г. 19:03, спустя 7 минут 25 секунд

    джава джаба джинкс!
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • NRG

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

    Spritz 19 января 2011 г. 19:23, спустя 20 минут 20 секунд

    я же говорил что полный нуль в джава.

    у меня такое очущение что я кот, и меня погладили против шерсти.
  • technobulka

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

    Spritz 19 января 2011 г. 19:34, спустя 11 минут 15 секунд

    NRG, тебя тоже напрягает, когда жесе жавой называют?)
    Высокоуровневое абстрактное говно
  • NRG

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

    Spritz 19 января 2011 г. 20:04, спустя 29 минут 53 секунды


    NRG, тебя тоже напрягает, когда жесе жавой называют?)
    Stasovsky, я думаю это можно заметить прочитав мою подпись =))
  • technobulka

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

    Spritz 19 января 2011 г. 20:18, спустя 13 минут 43 секунды

    NRG, а.. точно) а я-то думаю, где я видел это))
    Высокоуровневое абстрактное говно
  • Абырвалг

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

    Spritz 19 января 2011 г. 23:46, спустя 3 часа 28 минут 7 секунд

    и угадайте какую картинку я хочу вставить
  • Frozzeg

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

    Spritz 20 января 2011 г. 0:02, спустя 16 минут 28 секунд

    свою фотку после ванны, с полотенчиком?
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Абырвалг

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

    Spritz 20 января 2011 г. 0:20, спустя 17 минут 56 секунд

    нет же

  • NRG

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

    Spritz 20 января 2011 г. 0:58, спустя 38 минут


    свою фотку после ванны, с полотенчиком?
    ахххаххахаа)))))))))))
    +1
  • sbury

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

    Spritz 20 января 2011 г. 12:10, спустя 11 часов 11 минут 27 секунд

    ого! извиняюсь, виноват.
    Но как правильно вызвать select.php я так и не понял…

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