2016-09-29 1 views
0

У меня есть select ввод с value из базы данных, я покажу другие input значение при выборе onChange.выбрать со значением в таблице и показать onChange

function showModel(id) { 
 
    if (id === "") { 
 
     $("input[name=color]").val(""); 
 
    } else if ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
 
}
<select onchange='showModel(this.value)' name="model" class="form-control" required=""> 
 
    <option value="">- SELECT -</option> 
 
    <?php 
 
    $qry = $db->query("SELECT name_model, color FROM product "); 
 
    while ($fet = $qry->fetch_assoc()) { 
 
     ?> 
 
    <option value="<?php echo $fet['name_model']; ?>"><?php echo $fet['name_model']; ?></option> 
 
    <?php } ?> 
 
</select> 
 
<input type="text" value="" name="color" readonly="">

, когда я изменить select свои шоу color данные из таблицы

+1

Может, пожалуйста, указать, что ваша цель? – rbr94

+0

Когда я выбираю раскрывающийся список, его значение будет отображаться (значение из таблицы по выбранному значению) в '' –

+0

Просто убедитесь, что вы хотите выбрать элементы по их стоимости? –

ответ

1

Вместо установки значения параметра в name_model, установите его цвет вместо. Затем он должен работать так, как ожидалось.

<option value="<?php echo $fet['color']; ?>"><?php echo $fet['name_model']; ?></option> 

В вашем скрипте отсутствует другая часть.

function showModel(id){ 
    if (id === "") { 
     $("input[name=color]").val(""); 
    } else { 
     $("input[name=color]").val(id);    
    } 
} 
1

так showModel фактически получает значение из onchange, а значение может быть пустым ('') все, что вам нужно это:

function showModel(id){ 
     $("input[name=color]").val(id); 
} 
+0

Это решение более очаровательно, чем мое XD – Phiter

+1

Я никогда не умел писать собаку лучше кода, чем я. – Phiter

+3

Я не обычная собака. Я Jameson –

0

Использование JavaScript OnChange функции.

Имя файла php - это имя файла php вашего сервера. В php-файле все, что вам нужно сделать, это получить значение модели с помощью $ _POST ['model'] и выполнить операцию DB и эхо-имя цвета в ответе.

function showModel(value){ 
 
    if (value === "") { 
 
    $("input[name=color]").val(""); 
 
    } else{  
 
    $.ajax({ 
 
     url: 'filename.php', 
 
     type: 'GET', 
 
     data: 'model='+value, 
 
     success: function(data) { 
 
     //called when successful 
 
     $("input[name=color]").val(data); 
 
     }, 
 
     error: function(e) { 
 
     //called when there is an error 
 
     //console.log(e.message); 
 
     } 
 
    }); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select onchange='showModel(this.value)' name="model" class="form-control" required=""> 
 
    <option value="">- SELECT -</option> 
 
    <option value="1">Blue</option> 
 
    <option value="2">Yellow</option> 
 
    <option value="3">Red</option> 
 
</select> 
 
<input type="text" value="" name="color" readonly="">

Другой способ с помощью JQuery .on("change" событий слушателя.

$("select[name='model']").on("change",function(){ 
 
    var selectedvalue = $(this).val(); 
 
    if (selectedvalue === "") { 
 
    $("input[name=color]").val(""); 
 
    } else{ 
 
    $("input[name=color]").val(selectedvalue); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="model" class="form-control" required=""> 
 
    <option value="">- SELECT -</option> 
 
    <option value="1">Blue</option> 
 
    <option value="2">Yellow</option> 
 
    <option value="3">Red</option> 
 
</select> 
 
<input type="text" value="" name="color" readonly="">

+0

сожалею, что у меня с моим вопросом, что смущает, '$ (" input [name = color] "). Val (selectedvalue);' selectedvalue' данные из таблицы, а не из выбранного значения. если я выбрал модель 'model 123', тогда отобразите цвет« синий ».цвет является динамическим с помощью 'model' из таблицы (в базе данных) –

+1

При изменении поля выбора вам нужно сделать вызов ajax .. в ajax-вызове вам нужно передать выбранное значение из поля выбора ane, используя операцию db, которую вы должны выберете значение из db соответственно и присвойте значение в текстовом поле. –

+0

Я думаю, что, но вы бы указали ajax для меня, пожалуйста. : D –

0

Нет IF. Это тот же самый результат:

function showModel(id){ 
 
    $("input[name=color]").val(id); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select onchange='showModel(this.value)' name="model" class="form-control" required=""> 
 
    <option value="">- SELECT -</option> 
 
    <option value="123">123</option> 
 
    <option value="321">321</option> 
 
</select> 
 
<input type="text" value="" name="color" readonly="">

0

Я не знаю, если я прав, но это работает! ;-)

$('select[name=model]').on('change', function() { 
 
    var valModel = $(this).val(); 
 
    if (valModel != "- SELECT -") { 
 
    $("input[name=color]").val(valModel); 
 
    } else { 
 
    $("input[name=color]").val(""); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="model" class="form-control" required=""> 
 
    <option>- SELECT -</option> 
 
    <option value="Model_1">Model_1</option> 
 
    <option value="Model_2">Model_2</option> 
 
    <option value="Model_3">Model_3</option> 
 
</select> 
 
<input type="text" value="" name="color" readonly="">