Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.05.2014, 15:39
Интересующийся
Отправить личное сообщение для Nevrali Посмотреть профиль Найти все сообщения от Nevrali
 
Регистрация: 27.03.2014
Сообщений: 12

Как ajax (ом) обработать json из файла php
Первый файл_________index.php:
<!DOCTYPE HTML> <html>
<head> 
    <meta charset='utf-8' />
	<meta http-equiv="content-type" content="text/html" />
	<title>зависимый выпадающий список</title>
    <script type='text/javascript' src='jquery.js'></script>
    <script type='text/javascript' src='handler.js'></script> 
</head>
<body>
<label for="year">Год
                            <select name="year" id="year">
     <option value="">...</option>
     <option value="2014">2014</option>
     <option value="2013">2013</option>
                            </select>
</label>
<label for="year">Марка
                             <select name='brand' id='brand'>

/* место для подгружаемого списка */

                             </select>
</body></html>

Второй файл_________select.php:

<?php
$year = $_POST['year'];
$connect = new mysqli("localhost", "user", "password", "db_name");
$table="year_$year";
/* Посылаем запрос серверу */
if ($result = mysqli_query($connect, "SELECT DISTINCT brand FROM $table ")) {

    while($row = $result->fetch_array(MYSQL_ASSOC)) {
            $myArray[] = $row;
    }
    echo $myArray;
//echo json_encode($myArray);
}
$result->close();
$mysqli->close();

Json в результате выглядит вот так
[{"brand":"Alfa Romeo"},{"brand":"Acura"},{"brand":"Alfa Romeo\r\n"},{"brand":"Audi"}]



Сразу вопрос откуда взялось Alfa Romeo\r\n

Третий файл_________handler.js:
$(document).ready(function(){
      $('#year').change(function(){
         var year = ($(this).val());// здесь определяю переменную по выбору
$.ajax({
        type: "POST",
        url: "select.php",

            ???? ____здесь не знаю что писать____?????


        failure: function(errMsg) {
            alert(errMsg);
        }
  });

         
      });
   });


Задача - определив выбор селекта отправить это значение в файл select.php ajax запросом.
Ну не получается у меня правильно сформировать этот ajax/
Как сгенерировать теги <option>и массив json сунуть по одному
Подскажите где 'золото зарыто', как его формировать.
Заранее Благодарствую!!!!
Ответить с цитированием
  #2 (permalink)  
Старый 15.05.2014, 23:23
Кандидат Javascript-наук
Отправить личное сообщение для aleks_lv Посмотреть профиль Найти все сообщения от aleks_lv
 
Регистрация: 23.04.2010
Сообщений: 105

ну грубо то так
$(document).ready(function(){
        $('#year').change(function(){
            var year = $(this).val();// здесь определяю переменную по выбору
            var data="year="+year;
            $.ajax({
                type: "POST",
                url: "select.php",
                data:data,
                dataType:"json"
        }).done(function(data){
                    for(var i=0;i<data.length;i++)
                    {
                      $('<option value="'+data[i].brand+'"> '+data[i].brand+'</option>').appendTo($("#id"))
                    }
                })
    });
});

Последний раз редактировалось aleks_lv, 17.05.2014 в 01:52.
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2014, 16:00
Интересующийся
Отправить личное сообщение для Nevrali Посмотреть профиль Найти все сообщения от Nevrali
 
Регистрация: 27.03.2014
Сообщений: 12

Вот так работает! спасибо за направление !!!!
$(document).ready(function(){
        $('#year').change(function(){
            var year = $(this).val();// здесь определяю переменную по выбору
            var data="year="+year;
$.ajax({
                type: "POST",
                url: "/php/select.php",
                dataType:"json",
                data: data,              
                success: function(data){
                    for(var i=0;i<data.length;i++)
                    {
                      $('<option value="'+data[i].brand+'"> '+data[i].brand+'</option>').appendTo($("#brand"));

                    }}
                });
    });
});

Последний раз редактировалось Nevrali, 02.06.2014 в 16:27.
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2014, 17:05
Интересующийся
Отправить личное сообщение для Nevrali Посмотреть профиль Найти все сообщения от Nevrali
 
Регистрация: 27.03.2014
Сообщений: 12

А не подскажите, как правильно указать в =data= 2 параметра, хочу продолжить. Вот как то так я составил.

data="year="+year+"brand="+brand; // ВОТ ЗДЕСЬ У МЕНЯ ОШИБКА

$(document).ready(function(){
/* выбор бренда */    
        $('#brand').change(function(){
            var brand = $(this).val();// здесь определяю переменную по выбору
            var year = $('#year').val();
            var data="year="+year+"brand="+brand; //                                          ВОТ ЗДЕСЬ У МЕНЯ ОШИБКА
$.ajax({
                type: "POST",
                url: "/php/brand.php",
                dataType:"json",
                data: data,              
                success: function(data){
                    for(var i=0;i<data.length;i++)
                    {
                      $('<option value="'+data[i].model+'"> '+data[i].model+'</option>').appendTo($("#model"));

                    }}
                });
    });
});

Последний раз редактировалось Nevrali, 02.06.2014 в 17:09.
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2014, 17:25
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

$(document).ready(function(){
/* выбор бренда */    
        $('#brand').change(function(){
            var data= {
                year:   $('#year').val(),
                brand: $(this).val()
            }
$.ajax({
                type: "POST",
                url: "/php/brand.php",
                dataType:"json",
                data: data,              
                success: function(data){
                    for(var i=0;i<data.length;i++)
                    {
                      $('<option value="'+data[i].model+'"> '+data[i].model+'</option>').appendTo($("#model"));

                    }}
                });
    });
});
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2014, 01:28
Интересующийся
Отправить личное сообщение для Nevrali Посмотреть профиль Найти все сообщения от Nevrali
 
Регистрация: 27.03.2014
Сообщений: 12

Если не сложно не подскажите как сделать так,что бы в селект не вбивались пустые ключи из БД
НАПРИМЕР
json выглядит так
[{"brand":"Alfa Romeo"},{"brand":""}], т.е. второй ключ из Базы Данных приходит пустой. И получается,что селект выглядит ТАК
<select id="brand">
              <option value="eter"> Alfa Romeo </option>
              <option value="">  </option>                           // А вот эта строчка не нужна
</select>

Где искать ответ в JavaScript или в PHP?

Последний раз редактировалось Nevrali, 08.06.2014 в 01:35.
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2014, 09:14
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ну пройдись циклом, удали лишнее. Лучше в php.
Ответить с цитированием
  #8 (permalink)  
Старый 27.07.2014, 19:25
Интересующийся
Отправить личное сообщение для Nevrali Посмотреть профиль Найти все сообщения от Nevrali
 
Регистрация: 27.03.2014
Сообщений: 12

Была ошибка в записи БД, СПАСИБО!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как обработать RadioButton с помощью JavaScript и AJAX MagicDawn AJAX и COMET 6 24.12.2013 20:42
Как получить данные из php скрипта в расширении для Safari? housewm Opera, Safari и др. 2 19.12.2013 18:31
Получить функцию JavaScript (PHP, AJAX, jQuery) Sinot jQuery 3 04.02.2013 13:32
Как прочитать крилицу из файла doc? kilogram Серверные языки и технологии 2 16.05.2012 22:37