Как ajax (ом) обработать json из файла php
:help: :help: :help: Первый файл_________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> :help: :help: :help: Второй файл_________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 :help: :help: :help: Третий файл_________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 сунуть по одному Подскажите где 'золото зарыто', как его формировать. Заранее Благодарствую!!!!:write: |
ну грубо то так
$(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")) } }) }); }); |
Вот так работает! спасибо за направление !!!!
$(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")); }} }); }); }); |
А не подскажите, как правильно указать в =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")); }} }); }); }); |
$(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")); }} }); }); }); |
Если не сложно не подскажите как сделать так,что бы в селект не вбивались пустые ключи из БД
НАПРИМЕР json выглядит так [{"brand":"Alfa Romeo"},{"brand":""}], т.е. второй ключ из Базы Данных приходит пустой. И получается,что селект выглядит ТАК <select id="brand"> <option value="eter"> Alfa Romeo </option> <option value=""> </option> // А вот эта строчка не нужна </select> Где искать ответ в JavaScript или в PHP? |
Ну пройдись циклом, удали лишнее. Лучше в php.
|
Была ошибка в записи БД, СПАСИБО!!!!
|
Часовой пояс GMT +3, время: 16:35. |