php - 在更改事件上使用 jquery 从数据库获取值

标签 php jquery mysql

我在表格中列出了房间列表及其租金。房间列在下拉菜单中,我想在“输入”字段值、“页面加载”以及“下拉值更改”中获取租金。我编写了以下代码,但不知何故它没有按预期工作。有人可以帮我解决这个问题吗?

    <?php
define("HOST", "localhost");
define("DB_USER", "root");
define("DB_PASS", "");
define("DB_NAME", "testdb");


$conn = mysqli_connect(HOST, DB_USER, DB_PASS, DB_NAME);

if (!$conn) {
  die(mysqli_error());
}
$ajax = false;
$dbValue = 1; //or the default value of your choice - matched to the default selection value of the dropdown
if (isset($_GET['action']) && $_GET['action'] == 'ajax' && isset($_GET['dd'])) {
  $dbValue = intval($_GET['dd']);
  $ajax = true;
  $res = mysqli_query($conn, "SELECT rent FROM `rooms` WHERE roomid = '$dbValue' limit 1");
  $dataTable = '';
  while ($data = mysqli_fetch_assoc($res)) {
    $dataTable = $data['rent'];
  }
}
// if ($ajax) return $dataTable;

?>
<html>
<head>
    <title>jQuery Validation for select option</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>

<body>
    <select class="form-control" id= "roomid" name="roomid" required="">
                          <?php
                          $troom_sql = "SELECT roomid FROM rooms WHERE (isactive='y' AND isassigned='n' AND roomid NOT IN (SELECT roomid from roomalloc))";
                          $troom_rs = mysqli_query($conn, $troom_sql);
                          while ($troom_mem = mysqli_fetch_assoc($troom_rs)) {
                            ?>
                          <option value="<?php echo $troom_mem['roomid']; ?>"><?php echo $troom_mem['roomid']; ?></option>
                          <?php
                        } ?>
                        </select>
                        <input type="text" placeholder="Monthly Rent" class="form-control" id="rent" name="rent" required>

                        <br>

</body>

<script>
    $('#roomid').change(function()
    {
        var first = $('#roomid').val();
        var req = $.get('getDB.php', {dd: first, action: 'ajax'});
        req.done(function(data)
        {
          console.log("asdasd");
          $('#rent').val("<?php echo $dataTable; ?>");
        });
    });
</script>

</html>

最佳答案

虽然你把PHP和JS写在同一个文件中,但你仍然需要从PHP端返回数据并在JS中处理。

if ($ajax) return json_encode($dataTable)

来自 PHP 端

dat = JSON.parse(data)

在 JS 中

关于php - 在更改事件上使用 jquery 从数据库获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53755284/

相关文章:

javascript - 当使用 ajax 调用渲染表单时,客户端验证在 Yii2 中不起作用

Jquery fadein 'slow' 太快

javascript - dataTable fn用新值更新行

MySQL子查询与主查询值的日期时间比较

php - 我想要 <div> 并想在行和 3 列中设置我的 <div> ( block )所以请检查我的代码

javascript - strip 元素不接受信用卡输入

mysql - 一篇文章在每个标签中出现多少次?

php - 将多个表合并为一个表,并添加额外的字段值

php - JSON 数组到 PHP 日期时间

javascript - 需要帮助打开和关闭水平滑出面板?