Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обновление списка select (https://javascript.ru/forum/misc/53808-obnovlenie-spiska-select.html)

рони 19.02.2015 12:56

kiberchainik,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
     select{
       width: 200px;
     }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  $(function() {
        var response = [{value : 0, text : "test1"},{value : 1, text : "test2"} ]
        function success(arr) {
            $.each(arr, function( i,el) {
                 $("<option/>", {
                       text: el.text,
                       value: el.value
                   }).appendTo("#listFilter")
            })
        }
        success(response)
           $("#listFilter").val(1); // test
    });
  </script>
</head>

<body>
   <select name="" id="listFilter">
       <option value="">item1</option>
       <option value="">item2</option>
       <option value="">item3</option>
   </select>
</body>

</html>

laimas 19.02.2015 12:57

Цитата:

Сообщение от kiberchainik (Сообщение 357284)
вот что ...
function selectFiltri() {
            $this->Connect();
            
            $select = mysql_query("select seo_name from filtri");
            $arraySel = mysql_fetch_array($select);
            $num = mysql_num_rows($select);
            
            if ($num == "0") {
                echo"Фильтров еще нет";
            } else {
                do {
                    echo "<option value='".$arraySel['seo_name']."'>".$arraySel['seo_name']."</option>";
                } while ($arraySel = mysql_fetch_array($select));
            }
        }


это обработчик

Это не обработчик, это нет слов...

Фильтр по английски - filter, а не filtri, ну отвыкайте вы от этого жаргона, полусмеси непонятно чего с чем.

Функция mysql_fetch_array() без указания вторым аргументом типа возвращаемых данных, возвращает два идентичных набора, один индексный, второй ассоциативный. А вам это нужно? Зачем напрягать SQL пустыми задачами? Изучать, или эту использовать как необходимо, или именно ту, что возвращает необходимое (есть кроме нее).

if ($num == "0")... вообще оригинально. И прежде чем проверять количество полученных рядов, нужно проверить удачно ли вообще завершился запрос, если ошибки SQL у вас не обрабатываются глобально.

do ... while вообще не к месту. И где вы это только выкапываете, уже на стольких форумах эту пакость вижу, но до сих пор не знаю где вы ее черпаете.

Коли html, значит изменить список выгоднее так:

$("#listFilter").html('<option value="" style="color:gray">Seleziona...</option>'+response)

PS. Изменил value="0", на value="", проверять не пустое ли проще будет, а такая проверка желательна.

рони 19.02.2015 13:03

Цитата:

Сообщение от laimas
hrml

:-? так веть и напишет

laimas 19.02.2015 13:06

Да не исключено :)

рони 19.02.2015 13:10

:write:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
     select{
       width: 200px;
     }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  $(function() {
        var response = '<option value="0">test1</option><option value="1">test2</option>';
        function success(arr) {
            $(arr).appendTo("#listFilter")
        }
        success(response)
           $("#listFilter").val(1); // test
    });
  </script>
</head>

<body>
   <select name="" id="listFilter">
       <option value="">item1</option>
       <option value="">item2</option>
       <option value="">item3</option>
   </select>
</body>

</html>

kiberchainik 19.02.2015 13:28

не получается :( :-/ :cray:

kiberchainik 19.02.2015 13:34

Цитата:

Сообщение от laimas (Сообщение 357293)
Это не обработчик, это нет слов...

Фильтр по английски - filter, а не filtri, ну отвыкайте вы от этого жаргона, полусмеси непонятно чего с чем.

Функция mysql_fetch_array() без указания вторым аргументом типа возвращаемых данных, возвращает два идентичных набора, один индексный, второй ассоциативный. А вам это нужно? Зачем напрягать SQL пустыми задачами? Изучать, или эту использовать как необходимо, или именно ту, что возвращает необходимое (есть кроме нее).

if ($num == "0")... вообще оригинально. И прежде чем проверять количество полученных рядов, нужно проверить удачно ли вообще завершился запрос, если ошибки SQL у вас не обрабатываются глобально.

do ... while вообще не к месту. И где вы это только выкапываете, уже на стольких форумах эту пакость вижу, но до сих пор не знаю где вы ее черпаете.

Коли html, значит изменить список выгоднее так:

$("#listFilter").html('<option value="" style="color:gray">Seleziona...</option>'+response)

PS. Изменил value="0", на value="", проверять не пустое ли проще будет, а такая проверка желательна.

:D какая разница вообще на ошибки))) и filtri это на итальянском а не на аншлийском ))) главное ведь код!

а насчет do ... while это все евгений попов виноват его школа ))))

тогда у меня появляется второй вопрос или покажите как или натолкните на мануал, как данные из базы в простой массыв загнать и потом этот массив передать в ява обратно для вывода

рони 19.02.2015 13:35

kiberchainik,
success:function(response) {
            $(response).appendTo("#listFilter")
        }

если так не работает - покажите что в response на самом деле

kiberchainik 19.02.2015 13:57

Цитата:

Сообщение от рони (Сообщение 357309)
kiberchainik,
success:function(response) {
            $(response).appendTo("#listFilter")
        }

если так не работает - покажите что в response на самом деле

я так понимаю что он даже не обращается к ajax потому что перезагружает страницу и пишет только № ответ из одного данного

рони 19.02.2015 13:59

kiberchainik,
тогда убирайте вплытие по клику на ссылку


Часовой пояс GMT +3, время: 10:06.