簡體   English   中英

根據下拉選擇自動填充文本字段,其中所有值均來自MYSQL表

[英]Auto populate text fields based on dropdown selection where all values come from a MYSQL table

我試圖根據下拉選擇(instid和instfirstname)自動填充一些文本字段(rate1和rate2)。 這些值全部在一個名為tbl_insts的mysql表中。 我正在嘗試根據php中的下拉列表選擇如何動態獲取文本字段中的內容中找到的解決方案,但無法使其正常工作。 有沒有人有什么建議? 提前致謝。

這是我的mysql表,名為tbl_insts

instid instfirstname rate1 rate2

1約翰50 45

2 eric 25 45


這是我的html表格。 我能夠正確填充下拉列表,但不能填充文本字段。

<select name="instfilter" id="instfilter">
<?php
    if ($stmt = $conn->prepare("select instid, instfirstname from tbl_insts order by instid")) {
    $stmt->execute();
    $stmt->bind_result($instid, $instfirstname);
    echo '<option value="-1" selected="selected">Please select...</option>';
    while ($stmt->fetch()) {
        echo '<option value="'.$instid.'">'.$instfirstname.'</option>';
    }
    $stmt->close();
}
?>
</select>

<!-- Fields that I want to populate based on the selection on top -->
<input type="text" name="rate1" id="rate1" /> 
<input type="text" name="rate2" id="rate2" />

這是我代碼之前的代碼

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
<script>
$('#instfilter').change(function(){
var inst = $(this).val();
$.ajax({
type:'POST',
data:{inst:inst},
url:'getrates.php',
success:function(data){
   $('#rate1').val(data);
   $('#rate2').val(data);
} 
});
});
</script>

這是我與上面的html文件位於同一目錄中的getrates.php中的代碼。

<?php 
if (isset($_POST['inst'])) {
    $qry = "select rate1, rate2 from tbl_insts where instid = ".
$_POST['inst'];
    $rec = mysql_query($qry);
    if (mysql_num_rows($rec) > 0) {
        while ($res = mysql_fetch_array($rec)) {
            echo $res['rate1'];
            echo $res['rate2'];
        }
    }
}
die();
?>

未經測試,但我認為這些更改應該可以完成工作。

while ($res = mysql_fetch_array($rec)) {
    $result = [
        'rate1' => $res['rate1'],
        'rate2' => $res['rate2']
    ];
}
.......
die(json_encode($result));

success: function(data){
    data = $.parseJSON(data);
    $('#rate1').val(data.rate1);
    $('#rate2').val(data.rate2);
} 
  1. 嘗試將data:{inst:inst}更改為data:{'inst':inst}
  2. 現在,您從getrates.php返回一個字符串。 從您的代碼結構中,您可以執行以下操作:

     if (mysql_num_rows($rec) > 0) { while ($res = mysql_fetch_array($rec)) { echo $res['rate1']."|".$res['rate2']; } } 

..和

success:function(data){
 var inputs = data.split('|');
   $('#rate1').val(inputs[0]);
   $('#rate2').val(inputs[1]);
} 

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM