Обработка данных в select

Тема в разделе "JavaScript", создана пользователем KODEAK, 2 ноя 2014.

Модераторы: ZiX
  1. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    161
    Симпатии:
    15
    Доброго всем времени, подскажите пожалуйста как отправить запрос на сервер с полученным значение из option и из полученного ответа составить другой select

    пока что имею небольшую наработку
    Код:
     <select name="InputBrends" id="InputBrends" class="form-control">                           
                                <option value="1"> 1</option>
    <option value="2"> 2</option>                                                        
                            </select>
    и
    Код:
                        <script type="text/javascript">
                        function displayModels() {
                          var singleValues = $("#InputBrends").val();
                        }
                        
                        $("select").change(displayModels);
                        </script>    
    Спасибо
     
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    А что имеем и что надо составить? Можно пример? Не очень понятно

    Отправить:
    PHP:
    $.post("ajax.php?rand=" Math.random(), { singleValuessingleValues}).done(function(data){
                
    alert('Все прошло хорошо. Ответ сервера: '+data);
            }).
    fail(function(data){
                
    alert('Что-то пошло не так!');
            });
     
  3. Aglok

    Aglok ∞³

    Регистр.:
    9 янв 2012
    Сообщения:
    160
    Симпатии:
    46
    Пример кода, который работает на jquery-1.11.0:
    Код:
        <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script>
        <script>
        function displayModels(){
            var value = $('#InputBrends').val();
            var request = $.ajax({
              url: "ajax.php",
              type: "POST",
              data: value,
              dataType: "json"
            });
            request.done(function(data) {
                var select = $('#OutputBrends');
                  for (var i = 0; i < data.length; i++) {
                      var o = new Option(i+1,data[i]);
                      select.append(o);
                  };
            });
            request.fail(function( jqXHR, textStatus) {
                  alert( "Request failed: " + textStatus);
            });
        }
        $(document).ready(function(){
        $("select").change(displayModels);
        });
        </script>
    </head>
    <body>
    <select name="InputBrends" id="InputBrends" class="form-control">
        <option>1</option>
        <option>2</option>                                     
    </select>
    <select name="OutputBrends" id="OutputBrends" class="form-control">
    Код:
    <?php
    $rawPost = file_get_contents('php://input');
    $data = array();
    if($rawPost){
        $data[] = (int) $rawPost;
        $data[] = $rawPost+1;
        $data[] = $rawPost+2;
        $data[] = $rawPost+3;
    }
    // Заголовки ответа
    header('Content-type: text/plain; charset=utf-8');
    header('Cache-Control: no-store, no-cache');
    header('Expires: ' . date('r'));
    // Возвращаем
    echo json_encode($data);
    ?>
     
  4. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    161
    Симпатии:
    15
    готовый вариант, с очисткой если поменять значение 1 селекта
    Код:
        <script>
        function displayModels(){
            var value = $('#InputBrends').val();
            var request = $.ajax({
              url: "<?php echo \Uri::create('test/s/'); ?>" + value,
              type: "GET",
              dataType: "json"
            });
            request.done(function(data) {
                $("#OutputBrends").empty();
               
                $.each(data, function(key, value) {               
                    var GG = new Option(value.cs_id);
                   
                    $('#OutputBrends').append(
                        $('<option value="'+value.cs_category+'">'+value.cs_name+'</option>')
                    );
                   
                   
                });          
               
    
            });
            request.fail(function( jqXHR, textStatus) {
                  alert( "Request failed: " + textStatus);
            });
        }
        $(document).ready(function(){
            $("select").change(displayModels);
        });
        </script>
     
  5. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    161
    Симпатии:
    15
    столкунулся с проблемой что почему то выбирается постоянно в #OutputBrends первое значение как бы я не менял =( в чем ошибка ?
     
  6. Aglok

    Aglok ∞³

    Регистр.:
    9 янв 2012
    Сообщения:
    160
    Симпатии:
    46
    Поменяй
    Код:
    $("select").change(displayModels);
    На
    Код:
    $("InputBrends").change(displayModels);