0

Jquery UIをphp、mysqlで動作させるのが難しいです。以下は、オートコンプリートと私のHTMLフォームの基本的なjqueryUIコードです。

<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
?>

私は出力を取得しますが、何らかの理由で、jquery uiが呼び出されているため、Webページの上部に["keyword a"、"keywordb"]などのすべての情報が出力されます。データベース接続とその動作をテストしました。また、WebサイトでjqueryUIデモをテストしました。これは正常に動作します。問題(私は思う)は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

    });
});

これにより、オートコンプリートを試みる前に、criteria要素が実際にロードされていることを確認できます。

于 2012-10-08T13:55:40.557 に答える