ФорумПрограммированиеJavaScript → проблемы с динамическими select'ами

проблемы с динамическими select'ами

  • adw0rd

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

    Spritz 22 сентября 2009 г. 5:03, спустя 1 минуту 4 секунды

    gvik, я не помню как реализовывал, но могу найти исходники и отдать их вам. Надо?
    adw/0
  • gvik

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

    Spritz 22 сентября 2009 г. 5:24, спустя 21 минуту 6 секунд

    Сайт то тот уже не работает, поэтому извините за наглость я соглашусь с Вашим предложением e-mail
    У меня опять проблемка. Я добавил ещё одну функцию с бэкендом и теперь select'ы не появляются. Как только закомменчу функцию так всё работает норм. Может там перегруз какой? Может проблема из-за этой строчки if(req.readyState==4)?
    select.php
    <?php 
    ini_set('display_errors',1);
    error_reporting(E_ALL ^E_NOTICE);

    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);
    ?>
    <script src="JsHttpRequest.js"></script>

    <form>
    <input id="select1" type="hidden" />
    <input id="select2" type="hidden" />
    <input id="select3" type="hidden" />
    <input id="select4" type="hidden" />
    <input id="select5" type="hidden" />
    </form>

    <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,"select2.php",true);
    req.send({brand:value});
    }

    function doload1(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result1").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    document.getElementById("select2").value = value;
    req.open(null,"select3.php",true);
    req.send({brand:select1, model:value});
    }

    function doload2(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result2").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    document.getElementById("select3").value = value;
    req.open(null,"select4.php",true);
    req.send({brand:select1, model:select2, body:value});

    function doload3(value){
    var req=new JsHttpRequest();
    req.onreadystatechange=function(){
    if(req.readyState==4) document.getElementById("result3").innerHTML=req.responseText;}
    var select1 = document.getElementById("select1").value;
    var select2 = document.getElementById("select2").value;
    var select3 = document.getElementById("select3").value;
    document.getElementById("select4").value = value;
    req.open(null,"select5.php",true);
    req.send({brand:select1, model:select2, body:select3, fuel:value});
    }
    </script>

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

    <select name="brand" id="brand" onchange="doload(this.value);">
    <option value="no_action">–Выберите марку–</option>
    <?php
    $sql = mysql_query ("SELECT DISTINCT brand FROM t1");
    while ($new_brand = mysql_fetch_array($sql))
    echo '<option value='.$new_brand['brand'].'>'.$new_brand['brand'].'</option>';
    ?>
    </select>

    <br><br>

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

    <br>

    <div id="result1"></div>

    <br>

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

    <br>

    <div id="result3"></div>

    <br>

    <input type="submit" value="Найти">

    </form>
  • adw0rd

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

    Spritz 22 сентября 2009 г. 5:36, спустя 12 минут 23 секунды

    Сайт то тот уже не работает, поэтому извините за наглость я соглашусь с Вашим предложением e-mail
    Выслал. У вас фамилия Григорьев?
    adw/0
  • gvik

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

    Spritz 22 сентября 2009 г. 5:40, спустя 3 минуты 53 секунды

    Да, а что?
  • adw0rd

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

    Spritz 22 сентября 2009 г. 5:42, спустя 2 минуты 9 секунд


    Да, а что?
    Тут уже есть один Григорьев :) vasa_c
    adw/0
  • md5

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

    Spritz 22 сентября 2009 г. 5:43, спустя 18 секунд

    однофамильцы на пiха.ру
    все умрут, а я изумруд
  • gvik

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

    Spritz 22 сентября 2009 г. 6:01, спустя 18 минут 1 секунду

    а как его ФИО полностью?
    adw0rd, у нас сервак упал, перешлите пожалуйста на внеший e-mail
    select5.php
    <?php 
    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);

    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");
    ?>
    <select name="engine" id="engine" >
    <option value="no_action">–Выберите тип двигателя–</option>
    <?php
    $sql = mysql_query ('SELECT DISTINCT engine FROM t1 WHERE brand = "'.mysql_real_escape_string($_REQUEST["brand"]).'" AND model = "'.mysql_real_escape_string($_REQUEST["model"]).'" AND body = "'.mysql_real_escape_string($_REQUEST["body"]).'" AND fuel = "'.mysql_real_escape_string($_REQUEST["fuel"]).'"');
    if($sql) {
    while ($new_engine= mysql_fetch_array($sql)) {
    echo '<option value="'.$new_engine['engine'].'">'.$new_engine['engine'].'</option>';
    }
    } else {
    echo mysql_error();
    }
    ?>
    </select>
  • adw0rd

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

    Spritz 22 сентября 2009 г. 5:45, спустя 23 часа 44 минуты 11 секунд

    gvik, а что у вас в select5.php ?
    Спустя 18 сек.

    а как его ФИО полностью?
    http://blgo.ru/resume/
    adw/0
  • gvik

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

    Spritz 22 сентября 2009 г. 7:36, спустя 1 час 51 минуту 24 секунды

    adw0rd, Вы посмотрели select5.php?
    select5.php

    <?php
    $db = mysql_connect ("localhost", "root", "");
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    mysql_select_db("cars",$db);

    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");
    ?>
    <select name="engine" id="engine" >
    <option value="no_action">–Выберите тип двигателя–</option>
    <?php
    $sql = mysql_query ('SELECT DISTINCT engine FROM t1 WHERE brand = "'.mysql_real_escape_string($_REQUEST["brand"]).'" AND model = "'.mysql_real_escape_string($_REQUEST["model"]).'" AND body = "'.mysql_real_escape_string($_REQUEST["body"]).'" AND fuel = "'.mysql_real_escape_string($_REQUEST["fuel"]).'"');
    if($sql) {
    while ($new_engine= mysql_fetch_array($sql)) {
    echo '<option value="'.$new_engine['engine'].'">'.$new_engine['engine'].'</option>';
    }
    } else {
    echo mysql_error();
    }
    ?>
    </select>
  • NRG

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

    Spritz 22 сентября 2009 г. 7:42, спустя 5 минут 34 секунды

    select1.php, select2.php, select3.php, select4.php, select5.php , вышел зайчмк погулять.
    пиздец
    вот где рождаются антипаттерны.
    gvik, вы не задумывались о том, что можно както сгруппировать логику описаную в 5 файлах ?
    Спустя 107 сек.
    что делает вот это ?
    <?php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");
  • gvik

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

    Spritz 22 сентября 2009 г. 7:47, спустя 4 минуты 56 секунд

    NRG, я не знаю как их в один файл засунуть, потому что функции с увеличением кол-ва select'ов увеличивается кол-во передаваемых функцией параметров. Подскажите пожалйста, если знаете.

    что делает вот это ?
    <?php
    require("JsHttpRequest.php");
    $JsHttpRequest=new JsHttpRequest("windows-1251");


    обрабатывает мои запросы к бэкенду
  • gvik

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

    Spritz 22 сентября 2009 г. 7:59, спустя 12 минут 27 секунд

    adw0rd, я уже исправил и всё работает. Вопрос исчерпан
  • NRG

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

    Spritz 22 сентября 2009 г. 8:01, спустя 1 минуту 53 секунды

    обрабатывает мои запросы к бэкенду

    вы в код смотрели ?
    ато мне сдается что эта байда просто устанавливает хедер.

    NRG, я не знаю как их в один файл засунуть, потому что функции с увеличением кол-ва select'ов увеличивается кол-во передаваемых функцией параметров. Подскажите пожалйста, если знаете.

    знаю, [man]func_get_args[/man]
  • adw0rd

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

    Spritz 22 сентября 2009 г. 8:13, спустя 11 минут 32 секунды

    NRG, куда ты спешишь, еще дойдем и до одного бекенда, не торопи события
    Спустя 238 сек.

    adw0rd, я уже исправил и всё работает. Вопрос исчерпан
    ну так давайте теперь сделаем одну js-функцию и один php-бекенд?
    adw/0
  • gvik

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

    Spritz 22 сентября 2009 г. 9:07, спустя 54 минуты 22 секунды

    Давайте, а где почтить?

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