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

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

  • combit

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

    Spritz 24 февраля 2015 г. 12: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

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

    Spritz 24 февраля 2015 г. 13: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;;
                        ...
    
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • combit

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

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

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

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

    Spritz 21 мая 2021 г. 7:52, спустя 2277 дней 16 часов 57 минут

    Thanks for your sharing,That's pretty cool.
    seo-title [newhotplaza.com]

  • vipcontentss

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

    Spritz 20 июля 2021 г. 19:33, спустя 60 дней 11 часов 40 минут

    became a searcher,wanting to discover who i was and what made me precise. my view of myself turned into changing. i desired a stable base to start from. i commenced to resist3 stress to behave in ways that i didn’t like any greater,and i used to be delighted by who i in reality become. i got here to feel a good deal extra sure that no one can ever take my region.
    voip phone system service provider

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