У меня есть тестирование и поиск моего дела, но все же не работает. Любая помощь ему так ценится.Динамический выбор на основе json-данных с использованием jquery
У меня есть три выбора опции, которые реализованы PHP, как это:
<div class="control-group" id="merkPrinter">
<label class="control-label" for="selectError">Merk Printer :</label>
<div class="controls">
<select id="selectError" data-rel="chosen">
<select id="selectError" class="chzn-done" data-rel="chosen" style="display: none;">
<option value="BRO">BROTHER</option>
<option value="EDM">EPSON DOT MATRIK</option>
<option value="EPD">EPSON DESKJET</option>
<option value="HPD">HP DESKJET</option>
<option value="HPL">HP LASERJET</option>
<option value="HPO">HP OFFICEJET</option>
<option value="KM">KOINICA MINOLTA</option>
<option value="PNS">PANASONIC</option>
</select>
</div>
</div>
<div class="control-group" id="tipePrinter">
<label class="control-label">Tipe Printer :</label>
<div class="controls">
<select id="selectPrinter">
</select>
</div>
</div>
<div class="control-group" id="tipeToner">
<label class="control-label">Tipe Toner :</label>
<div class="controls">
<select id="selectToner" disabled="disabled">
</select>
</div>
Для передачи данных из моей базы данных, я использую Ajax JQuery, как это:
$(document).ready(function($) {
$('#tipePrinter').hide();
$('#tipeToner').hide();
$("#merkPrinter").change(function() {
var id = $('#selectError option:selected').val(); // return value
if (id == "HPL") {
$.ajax({
url: '<?php echo base_url() . 'control_printer/getTypePrinter/' ?>',
type: 'POST',
data: {id: id
},
dataType: 'json',
success: function(obj) {
$('#tipePrinter').show();
$.each(obj, function(i, val) {
var content1 = "<option value=" + val.type + ">" + val.type + "</option>";
var content2 = "<option value=" + val.toner + ">" + val.toner + "</option>";
//List all of printer
$("#selectPrinter").append(content1);
//Dummy,
$("#selectToner").append(content2);
$('#tipeToner').show();
});
}
});
}
;
});
});
от этого ajax, я получил JSON вот так:
[
{
"id_printer": "HPL",
"type": "3030, 1020, 3055",
"toner": "12A"
},
{
"id_printer": "HPL",
"type": "1200",
"toner": "15A"
},
{
"id_printer": "HPL",
"type": "P1106",
"toner": "35A"
},
{
"id_printer": "HPL",
"type": "PIXMAX",
"toner": "328"
},
{
"id_printer": "HPL",
"type": "1160, 1320",
"toner": "49A"
},
{
"id_printer": "HPL",
"type": "2015D",
"toner": "53A"
},
{
"id_printer": "HPL",
"type": "P1102, PRO1102W",
"toner": "CE285A"
}
]
Предположим, пользователь выбрал HP Laserjet, , второй вариант выбора будет показывать тип принтера, например: «P1102, PRO1102W». В третьей опции выбора только просмотр второго варианта выбора тонера, который является «CE285A». И так далее, и так далее.
P.S: третий выберите параметр отключен
Благодаря
Почему только «P1102, PRO1102W». Принтер canant 2015D и тонер должны быть 53A? – void
ya, это просто для примера. Если пользователь выбирает тип 3030, 1020, 3055, тонер должен быть 12А. Итак, 2015D должен 53A, а не 12A или другие. Спасибо void ... –
Итак, пользователь выбирает принтер, соответствующий тонер должен выбираться автоматически? – void