0

我很难让 Jquery UI 与 php、mysql 一起使用。下面是自动完成和我的 HTML 表单的基本 jquery UI 代码

<script type="text/javascript">

    $("#criteria").autocomplete({
    source: "includes/keywords.php",
    dataType: "json",
    minLength: 2,//search after two characters

    });
</script>

  <?php echo "<form class='docs' action='".$_SERVER['PHP_SELF']."' method='post'>"; ?>
                      <fieldset>
                          <input type="text" name="criteria"  id="criteria"  />
                          <input type="submit" name="submit" id="submit" value="search" />
                      </fieldset>
                  </form>

继承人的php文件

<?php

try{
    $conn = new PDO(DB_HOST, DB_USER, DB_PASS);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare('SELECT keywords FROM table_name WHERE keywords LIKE :input');

    //Execute the sql
    $stmt->execute(array(':input' => '%'.$_GET['term'].'%'));

    //Get array containing all of the result rows
    while($row = $stmt->fetch()){
        $row_set[] = $row['keywords'];//build an array

    }


}catch(PDOException $e){
    echo 'ERROR: ' . $e->getMessage();
}

echo json_encode($row_set);//format the array into json data
?>

我确实得到了输出,但由于某种原因,它在我的网页顶部输出了所有信息,例如 ["keyword a","keyword b"],我认为这是因为那是调用 jquery ui 的地方。我已经测试了我的数据库连接及其工作正常,并且还在我的网站上测试了运行良好的 jquery UI 演示。问题(我认为)似乎在 php 文件中

任何帮助将不胜感激

4

1 回答 1

3

在您的代码中,您尝试在元素加载到 DOM 文档之前对该元素调用自动完成功能。你应该用 包装你的脚本$(document).ready(),像这样:

$(document).ready(function() {
    $("#criteria").autocomplete({
    source: "includes/keywords.php",
    dataType: "json",
    minLength: 2,//search after two characters

    });
});

这将确保条件元素在尝试使其成为自动完成之前已实际加载。

于 2012-10-08T13:55:40.557 回答