У меня есть три выбора в моей форме. Каждый зависит от значений предыдущего

У меня есть три выбора в моей форме.

Каждый зависит от значений предыдущего.

Я имею в виду, что есть выпадающий список с категории, Марка машины а также Модель автомобиля.

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

Форма HTML, язык сервера — PHP, я хочу использовать Ajax JQUERY, чтобы получить значение select.

Помогите пожалуйста, как это должно быть?

-2

Решение

Вы должны сделать что-то вроде этого:

   jQuery(function($) {
var brands = {
'Trucks': ['Ford', 'Chevrolet'],
'Cars': ['Honda', 'Volkzwagen'],
}

var models = {
'Ford': ['Model1', 'Model2'],
'Chevrolet': ['Model3', 'Model4'],
'Honda': ['Model5', 'Model6'],
'Volkzwagen': ['Model7', 'Model8'],
}

var $brands = $('#brand');
var $models = $('#model');$('#category').change(function () {
var category = $(this).val(), brnds = brands[category] || [];

var html = $.map(brnds, function(brnd){
return '<option value="' + brnd + '">' + brnd + '</option>'
}).join('');
$brands.html('<option>Select</option>'+html)

$models.html('');

});

$('#brand').change(function () {
var brand = $(this).val(), mdls = models[brand] || [];

var html = $.map(mdls, function(mdl){
return '<option value="' + mdl + '">' + mdl + '</option>'
}).join('');
$models.html(html)
});
});

Проверьте это JSFiddle: http://jsfiddle.net/minijavi19/2pza5/1908/

Конечно, если вы хотите использовать Ajax, вы должны установить свои переменные вместе с ним.

0

Другие решения

Спасибо всем, кто обратил внимание на мой вопрос !!! Но я хочу поделиться с вами своим решением. Есть 3 файла: index.php, ajax-questions.js, php-funcs.php.

//index.php
$categories = $mysqli->query("SELECT category_id, category_name FROM
categories") or die($mysqli->error);
<form action="../../php/admin_funcs.php" method="post">
<select id="cat_slc" class="lists" name="category" >
<option disabled selected>Выберите категорию</option>
<?php
while ($crow = $categories->fetch_assoc())
{
echo "<option
value='".$crow['category_id']."'>".$crow['category_name']."</option>";
}
?>
</select>
<select id="marka_slc" class="lists marka-select" name="marka" >
<option disabled selected>Выберите марку</option>
</select>
<select id="model_slc" class="lists model-select" name="mode">
<option disabled selected>Выберите модель</option>
</select>
</form>

//ajax-queries.js
$('#cat_slc').change(function () {
var cat_id = $(this).val();
var url = '../../php/data_functions.php';
$('#marka_slc').load(url + '#mark-block', {cat_id: cat_id}, function () {
$('.marka-select').fadeIn('slow');
});
});

$('#marka_slc').change(function(){
var mark_id = $(this).val();
var url = '../../php/data_functions.php';
$('#model_slc').load(url + '#model-block', {mark_id: mark_id}, function (){
$('.model-select').fadeIn('slow');
});
});

//php-funcs.php
<?php
require_once "db_connect.php";

function GetMarkas(){
global $mysqli;
$category_id = $_POST['cat_id'];
$query = "SELECT marka_id, marka_name FROM marka WHERE category_id =
'".$category_id."'";
$result = $mysqli->query($query);
$data = '';
while ($row = $result->fetch_assoc()){
$data .= "<option value='".$row['marka_id']."'>".$row['marka_name']."</option>";
}
return $data;
}
function GetModels(){
global $mysqli;
$mark_id = $_POST['mark_id'];
$query = "SELECT model_id, model_name FROM model WHERE marka_id=
'".$mark_id."'";
$result = $mysqli->query($query);
$data = '';
while ($row = $result->fetch_assoc()){
$data .= "<option value='".$row['model_id']."'>".$row['model_name']."</option>";
}
return $data;
}if(isset($_POST['mark_id'])){
echo"<div id='model-block'>" .  GetModels() . "</div>";
}
else if(isset($_POST['cat_id'])){
echo"<div id='mark-block'>" .  GetMarkas() . "</div>";
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector