Как 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, время: 21:11. |