[英]on dropdown Change event load data from database and fill text box
我有一个简单的下拉列表,其值来自数据库。
$query = "SELECT id,location_name FROM misc_location";
if ( $result = mysql_query($query) ) {
$selectLoco = "<select name='selectLoco' id='selectLoco'>";
while ($row = mysql_fetch_row($result) ) {
$selectLoco .= "<option value='$row[0]''> $row[1] </option>";
}
$selectLoco .= "</select>";
}
但是现在我在下拉菜单下面有一个文本框。 因此,当用户选择一个下拉项时,我需要提取一个与所选项相对应的值并显示在文本框中。
表格:misc_location
id location_name time
1 Ben 7.00 am
2 Cat 8.00
位置:下拉用户选择Ben,下面的文本框应显示7.00
您需要为选择分配一个事件侦听器:
<select name='selectLoco' id='selectLoco' onchange="$('#textboxid').val(this.value);">
并更正您的php。 您在输出选项值的地方有两次引号。 您可能还想更新加载时的值。
这是一个jsfiddle链接
还有一个更好的例子:
<select name='selectLoco' id='selectLoco' onchange="updateValue();">
<option value="123">aaa</option>
<option value="456">bbb</option>
</select>
<input type="text" id="textboxid" />
<script type="text/javascript">
//the function that takes care of the updating
function updateValue()
{
$('#textboxid').val($('#selectLoco').val());
}
//update once the page has loaded too
$(document).ready(function () {
updateValue();
});
</script>
您可以尝试使用onchange
触发事件尝试调用javascript函数并填充值吗? myvalue
您可以代替您的文本框ID。
$selectLoco = "<select name='selectLoco' id='selectLoco' onchange='UpdateTextbox(this)'>";
while ($row = mysql_fetch_row($result) ) {
$selectLoco .= "<option value='$row[0]'> $row[1] </option>";
}
$selectLoco .= "</select>";
echo '<input id="myvalue" type="text">';
javscript:
function UpdateTextbox(d){
document.getElementById('myvalue').value = d.value;
}
如果使用Jquery实现:
$(function(){
$('#selectLoco').change(function(){
$("#myvalue").val($(this).val());
});
});
向选择中添加一个自定义数据属性以表示时间,然后使用jQuery访问它。
$query = "SELECT id,location_name FROM misc_location";
if ( $result = mysql_query($query) ) {
$selectLoco = "<select name='selectLoco' id='selectLoco'>";
while ($row = mysql_fetch_row($result) ) {
$selectLoco .= "<option value='$row[0]' data-time='$row[2]'> $row[1] </option>";
}
$selectLoco .= "</select>";
}
下面的jQuery:
$('#selectLoco').on('change',function(e){
$('#textboxid').val($(this).children(':selected').attr('data-time'))
});
JSfiddle 在这里
我得到了解决,基于使用ajax + json的答案,这是我的方法
jQuery的
$('#selectLoco').on('change', function(){
selectLoco = $('#selectLoco option:selected').val(); // the dropdown item selected value
$.ajax({
type :'POST',
dataType:'json',
data : { selectLoco : selectLoco },
url : 'getresult.php',
success : function(result){
$('#textBoxIwant).val(result['WeekDaySm']);// json result
}
});
});
的PHP
<?php
require_once ('../config/db.config.php');
$selectLoco = $_POST['selectLoco'];
$query = "SELECT * FROM misc_location WHERE id = '$selectLoco' ";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
echo json_encode($row);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.