PHP + MySQL-数据库自动完成功能无法从表中获取数据

PHP + MySQL-数据库自动完成功能无法从表中获取数据

问题描述:

我正在做一个关于讨论室服务的小型大学项目.现在,我正被要求实现自动完成功能的名称命令.我已经用谷歌搜索了一些教程.我不确定出了什么问题,当我尝试输入名称时,前面没有数据. 这是我的表单代码:

I'm having a small college project about discussion room service. Right now I'm being tasked to implement autocomplete feature of name that orders it. I already google some tutorials. I'm not sure what went wrong, when i try to type a name, there's no data being typed ahead. Here's my form code:

<?php
$host = "localhost";
$user = "root";
$pass = "";
$name = "pinjamruang";
$koneksi = mysqli_connect($host, $user, $pass, $name);

//Periksa apakah koneksi berhasil
if(mysqli_connect_errno()){
    echo "Error: ";
    echo mysqli_connect_error();
    echo "<br   /> Error Code: ";
    echo mysqli_connect_errno();
    die();
}
$sql = "SELECT * FROM ruangan
        WHERE id = $_GET[id]";
$hasil = mysqli_query($koneksi,$sql);
$row = mysqli_fetch_assoc($hasil);
$sql2 = "SELECT * FROM shift
        WHERE id = $_GET[shift]";
$hasil2 = mysqli_query($koneksi,$sql2);
$row2 = mysqli_fetch_assoc($hasil2);
?>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
  $(function() {
    $( "#typeahead" ).autocomplete({
      source: 'typeaheads.php';
    });
  });
</script>
<h1> Konfirmasi Pemesanan Ruang <?php echo $row['kode']; ?></h1><br>
<form class="form-horizontal" action="process/process-order-ruang.php" method="post">
    <div class="form-group">
        <label for="inputNamaPemesan" class="col-sm-2 control-label">Nama</label>
        <div class="col-sm-10">
            <input type="text" name="nama_pemesan" class="form-control" id="typeahead" placeholder="Nama Pemesan">
        </div>
    </div>
    <div class="form-group">
        <label for="inputKeperluan" class="col-sm-2 control-label">Keperluan</label>
        <div class="col-sm-10">
            <select name="keperluan" class="form-control" id="inputKeperluan">
                <option value="Diskusi Belajar">Diskusi Belajar</option>
                <option value="Diskusi Tugas">Diskusi Tugas</option>
                <option value="Dokumentasi">Dokumentasi</option>
                <option value="Lain-lain">Lain-lain</option>
            </select>
        </div>
    </div>
    <div class="form-group">
        <label for="inputWaktu" class="col-sm-2 control-label">Waktu</label>
        <div class="col-sm-10">
        <input type="text" class="col-sm-5" name="waktu" value="<?php $row2['shift'];
                        $timestamp = strtotime($row2['shift']);
                        $waktuk = date('H.i A', $timestamp);
                        $int = (int)$waktuk;
                        echo $int; ?>:00" disabled> - <input type="text" class="col-sm-5"value="<?php $row2['shift'];
                        $timestamp = strtotime($row2['shift']);
                        $waktuk = date('H.i A', $timestamp);
                        $int = (int)$waktuk;
                        echo $int+2; ?>:00" disabled>
        </div>
    </div>
    <?php $shift = $_GET['shift'];
          $ruangan = $_GET['id'];?> 
    <input type="hidden" value="<?php $int2 = (int)$shift;?>" name="shift">
    <input type="hidden" value="<?php $int3 = (int)$ruangan;?>" name="ruangan">
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-primary">Pesan</button>
        </div>
    </div>
</form>

这是我的代码,应该从表中返回json数据

and here is my code which should return json data from my table

<?php
$host = "localhost";
$user = "root";
$pass = "";
$name = "pinjamruang";
$koneksi = mysqli_connect($host, $user, $pass, $name);
//connect with the database

//get search term
$searchTerm = $_GET['term'];
//get matched data from table
$query = $koneksi->query("SELECT * FROM user 
                          WHERE nama LIKE '%".$searchTerm."%' ORDER BY nama ASC");
while ($row = $query->fetch_assoc()) {
    $data[] = $row['nama'];
}
//return json data
echo json_encode($data);
?>

任何帮助将不胜感激.非常感谢!

Any help would be much appreciated. Thanks a lot!

在脚本中使用以下代码.从源代码中删除分号.您可以使用冒号作为其他参数.

Use below code in script. remove semicolon from source. You can use colon for other parameters.

<script>
    $(function() {
        $( "#typeahead" ).autocomplete({
            source: 'typeaheads.php'
        });
    });
</script>