Javascript 在下拉列表中更改事件从数据库加载数据并填充文本框

Javascript 在下拉列表中更改事件从数据库加载数据并填充文本框,javascript,php,jquery,mysql,drop-down-menu,Javascript,Php,Jquery,Mysql,Drop Down Menu,我有一个简单的下拉列表,它的值来自数据库 $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) ) { $selectLo

我有一个简单的下拉列表,它的值来自数据库

$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>";
} 

位置:下拉用户选择Ben,下面的文本框应显示7.00

您需要为您的选择分配一个事件侦听器:

<select name='selectLoco' id='selectLoco' onchange="$('#textboxid').val(this.value);">
并更正您的php。在输出选项值的地方有两次引号。 您可能还希望在加载时更新该值

这里有一个

还有一个更好的例子:

<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>

您需要为您的选择分配一个事件侦听器:

<select name='selectLoco' id='selectLoco' onchange="$('#textboxid').val(this.value);">
并更正您的php。在输出选项值的地方有两次引号。 您可能还希望在加载时更新该值

这里有一个

还有一个更好的例子:

<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">';
如果使用Jquery实现:

   $(function(){
    $('#selectLoco').change(function(){
       $("#myvalue").val($(this).val());
     });
   });
您可以尝试使用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">';
如果使用Jquery实现:

   $(function(){
    $('#selectLoco').change(function(){
       $("#myvalue").val($(this).val());
     });
   });

向select添加一个自定义数据属性以表示时间,然后使用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>";
} 

jsiddle

向select添加一个自定义数据属性以表示时间,然后使用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>";
} 

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);
 ?>

我找到了一个解决方法,基于使用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);
 ?>

document.getElementById'myvalue'.value=d.value,但在这种情况下,我如何从db表加载值?我将其传入onchange='UpdateTextboxthis',它使用选定的下拉列表valuedocument.getElementById'myvalue'.value=d.value,但在这种情况下,我如何从db表加载值?我将其传入onchange='UpdateTextboxthis',它使用选定的下拉值