ФорумПрограммированиеБольше языковJava → загрузка несколькиз селектов из базы после выбора в основном селекте без перезагрузки

загрузка несколькиз селектов из базы после выбора в основном селекте без перезагрузки

  • combit

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

    Spritz 24 февраля 2015 г. 4:46

    здравствуйте есть форма с основным селектом name="filter_id"
    <div id="dataf">
    <div>
    <select name="filter_id" onchange="javascript:selectRegion();">
    <option value="0">- seleziona filtro -</option>
    <?=$query->selectFiltri()?>
    </select>
    </div>
    <p>
    Larghezza: <input type="text" name="altezza" value="" style="width: 40px;" />&nbsp;x
    Altezza: <input type="text" name="larghezza" value="" style="width: 40px;" />
    </p>
    <div name="selectTipologia"></div>
    <div name="selectProfilo"></div>
    <div name="selectManiglia"></div>
    <div name="selectColore"></div>
    <div name="selectVetro"></div>
    <div name="selectVetroDecorativo"></div>
    </div>


    и есть js функция которая вызывается этим селектом

    function selectRegion(){
    var filter_id = $('select[name="filter_id"]').val();
    if(!filter_id){
    $('div[name="selectTipologia"]').html('');
    $('div[name="selectProfilo"]').html('');
    $('div[name="selectManiglia"]').html('');
    $('div[name="selectColore"]').html('');
    $('div[name="selectVetro"]').html('');
    $('div[name="selectVetroDecorativo"]').html('');
    }else{
    $.ajax({
    type: "POST",
    url: "filter.php",
    data: { action: 'showFilterForInsert', filter_id: filter_id },
    cache: false,
    success: function(responce){

    var optipologi = '';
    $(responce.selectTipologia).each(function() {
    optipologi += '<option value="' + tipologi.attr('id') + '">' + tipologi.attr('nome_corto') + '</option>';
    });

    var opprofili = '';
    $(responce.selectProfilo).each(function() {
    opprofili += '<option value="' + profili.attr('id') + '">' + profili.attr('nome_corto') + '</option>';
    });

    $('div[name="selectTipologia"]').html('<select name="Tipologia">'+optipologi+'</select>');
    $('div[name="selectProfilo"]').html('<select name="Profilo">'+opprofili+'</select>');
    $('div[name="selectManiglia"]').html('<select name="Maniglia">'+selectManiglia+'</select>');
    $('div[name="selectColore"]').html('<select name="Colore">'+selectColore+'</select>');
    $('div[name="selectVetro"]').html('<select name="Vetro">'+selectVetro+'</select>');
    $('div[name="selectVetroDecorativo"]').html('<select name="VetroDecorativo">'+selectVetroDecorativo+'</select>');
    }
    });
    };
    };


    а так же php обработчик

    <?php
    $sql = mysql_connect("localhost", "kiber161_ad", "1231988");

    if (!$sql) {
    echo "MySQL сервер недоступен! ".mysql_error();
    } else {
    $select = mysql_select_db("kiber161_ad", $sql);

    if (!$select) {
    echo "Нет соединения с БД".mysql_error();
    }
    }

    if ($_POST['showFilterForInsert']){

    //$selectTipologia .= '<select name="Tipologia">';
    $Tipologia = mysql_query("SELECT id, nome_corto FROM criteri WHERE id_filter='".$_POST['filter_id']."' AND meta='Tipologia'");
    if ($Tipologia) {
    $num = mysql_num_rows($Tipologia);
    $i = 0;
    while ($i < $num) {
    $tipologi[$i] = mysql_fetch_object($Tipologia);
    $i++;
    }
    $selectTipologia = array('tipologi'=>$tipologi);
    }
    //$selectTipologia = '</select>';

    //$selectProfilo .= '<select name="Profilo">';
    $Profilo = mysql_query("SELECT id, nome_corto FROM criteri WHERE id_filter='".$_POST['filter_id']."' AND meta='Profilo'");
    if ($Profilo) {
    $num = mysql_num_rows($Profilo);
    $i = 0;
    while ($i < $num) {
    $profili[$i] = mysql_fetch_object($Profilo);
    $i++;
    }
    $selectProfilo = array('profili'=>$profili);
    }
    //$selectProfilo = '</select>';

    $responce = array('selectTipologia' => $selectTipologia, 'selectProfilo' => $selectProfilo);
    print json_encode($responce);
    }
    ?>

    проблема в том что возвращается пустой результат и я не знаю как вывести массив в яве
  • adw0rd

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

    Spritz 24 февраля 2015 г. 5:30, спустя 44 минуты 26 секунд

    @combit,

    1. Явы у вас никакой нет, есть только javascript
    2. Для вывода отладочной информации в js лучше использовать console.log(obj)
    3. Нажмите F12 чтобы вызвать консоль разработчика, там есть вкладка Console, в ней будет выводится отладочная информация, в том числе console.log. Еще есть вкладка Network (или Net), в ней вы сможете увидеть ваши обращения к бекенду на php и посмотреть что он вам возвращает

    Спустя 134 сек.

    Подскажу, надо лог вставить так:

                        ...
                        success: function(responce){
                            console.log(&#39;MY RESPONSE!!!&#39;, response)
                            var optipologi = &#39;&#39;;
                        ...
    
    adw/0
  • combit

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

    Spritz 24 февраля 2015 г. 6:55, спустя 1 час 24 минуты 31 секунду

    большое спасибо я разобрался можно закрыть тему )))

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