【问题标题】:Auto-fill input form with PHP, MySQL and jQuery使用 PHP、MySQL 和 jQuery 自动填充输入表单
【发布时间】:2016-02-10 02:02:03
【问题描述】:

我的自动填充输入表单有问题,当然是 PHP MySQL 和 jQuery。所以我有选择选项表单和一些“禁用”文本框。我希望当我选择其中一个选项时,文本框会自动填充数据库中的值

这就是我的全部代码:

PHP(数据库连接) - 我把它放在我的<html> 代码之上

<?php
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'db_mydatabase';

    mysql_connect($host, $user, $pass);
    mysql_select_db($db);

    $user = '';
    $query = mysql_query("SELECT * FROM tb_payment") or die (mysql_error());
?>

HTML

<select name="student" class="input-data">
    <option value="">-- SELECT STUDENT --</option>
    <!-- Do loop data from database -->
    <?php while ($row = mysql_fetch_object($query)): ?>
        <option value="<?php echo $row->id_user ?>">
            <?php echo $row->name ?>
        </option>
    <?php endwhile; ?>
</select>
<br />
<table border=1>
    <tr>
        <th>ID</th>
        <td><input type="text" class="output-id" disabled /></td>
    </tr>
    <tr>
        <th>Name</th>
        <td><input type="text" class="output-name" disabled /></td>
    </tr>
    <tr>
        <th>Total Payment</th>
        <td><input type="text" class="output-total" disabled /></td>
    </tr>
</table>

jQuery :

$(document).ready(function(){
    $(".input-data").on("change", function(){
        <?php $id_user = "$(this).val()"; ?>

        <?php $data = mysql_query("SELECT * FROM tb_payment WHERE id_user = '$id_user'") or die (mysql_error()); ?>
        <?php while($row = mysql_fetch_object($data)): ?>
            $(".output-id").val(<?php $row->id_user ?>);
            $(".output-name").val(<?php $row->name ?>);
            $(".output-total").val(<?php $row->total ?>);
        <?php endwhile; ?>
    });
});

但是当我尝试选择该选项时,这些值不会出现。有人可以帮我吗?

【问题讨论】:

  • 如果在 jQuery 部分的第 4 行删除这个多余的 &lt; 会怎样?
  • 你有错误报告吗?这应该会导致问题while (row - mysql_fetch_object($query)):..
  • 感谢@PhiterFernandes,已删除
  • @chris85 没有报告错误,但是当我打开我的萤火虫时,java脚本代码只是$(document).ready(function(){ $(".input-data").on("change", function(){}); });
  • 您在查看 PHP 错误日志吗?

标签: javascript php jquery html mysql


【解决方案1】:

创建新页面名称 process.php 包含什么:

require_once "connectDB.php";

header('Content-type: application/json; charset=utf-8');

if(isset($_POST['one'])){
$json = array();
$id =  trim($_POST['one']);
$query = "SELECT id, name, total FROM tb_payment WHERE id_user = ?";
$statement = $databaseConnection->prepare($query);
$statement->bind_param('s', $id);
$statement->execute();
$statement->bind_result($nId, $nName, $nTotal);
while ($statement->fetch()){
   $user=array('id'=>$nId,'name'=>$nName,'total'=>$nTotal);
    array_push($json,$user);
}
echo json_encode($json, true);

 }

还有 Jquery:

$(document).ready(function(){
    $(".input-data").on("change", function(){
            var id = $(".input-data").val();
            var data = 'one=' + id;
            $.ajax({
                type: "POST",
                url: "process.php",
                data: data,
                dataType: 'json',
                success: function (data) {
                    if (data) {
                        for (var i = 0; i < data.length; i++) { //for each user in the json response
                            $(".output-id").val(data[i].id);
                $(".output-name").val(data[i].name);
                $(".output-total").val(data[i].total);
                        } // for

                    } // if
                } // success
            }); // ajax
    });
});

【讨论】:

    【解决方案2】:

    你必须打印

     $(".output-id").val(<?php print $row->id_user ?>);
     $(".output-name").val(<?php print $row->name ?>);
     $(".output-total").val(<?php print $row->total ?>);
    

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 2021-12-03
      • 2011-07-29
      • 2014-06-11
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多