3

Jquery UI を使用してプロジェクトにオートコンプリートを実装しようとしていますが、少し変更したいと思います。

動的に呼び出される PHP は次のとおりです。

<?php 
include "../../connections/connect.inc.php";


$return_arr = array();


$search_term = "%".$_GET['term']."%";
$moviesquery = "SELECT * FROM movie where movie_name like :term";
$movieresults = $dbconnection->prepare($artistsquery);
$movieresults->bindValue(":term",$search_term);
$movieresults->execute();

/* Retrieve and store in array the results of the query.*/
while ($row = $movieresults->fetch(PDO::FETCH_ASSOC)) {

$return_arr[] = array('label'=>$row['movie_name'],'value'=>$row['movie_name']); //build an array
//array_push($return_arr,$row_array);
}

/* Toss back results as json encoded array. */
echo json_encode($return_arr);

これは、私の JQuery 呼び出しで書いたものです。

$(function() {
    $("#movie_name").autocomplete({
       source: "sendmovies.php",
       minLength: 3
    })
});

問題は、オートコンプリートの提案で各映画に関する詳細情報を確認したいということです。現在、オートコンプリートは機能し、映画の名前のみが表示されます。名前の下に国とリリース年を表示したい。ユーザーがクリックすると、オートコンプリートが映画名の値のみを取得するようにします。また、場合によっては、映画 ID も非表示フィールドに取得します。私はJquery初心者なので、誰かが私を助けてくれたらとてもうれしいです.

皆さん、ありがとうございました。

4

1 に答える 1

2

この部分について:

また、場合によっては、映画 ID も非表示フィールドに取得します。私はJquery初心者なので、誰かが私を助けてくれたらとてもうれしいです.

jQuery:

$( "#movie_name" ).autocomplete({
    select: function(event, ui){
      if(ui.item.value == ""){
        return false;
      }else{
        //here start your logic (its executed when you select the result
        $('input.hidden').val(ui.item.id);
        $('input[name=any]').val(ui.item.val);
      }
    }
});

そして、次を追加する必要があります:

/* Retrieve and store in array the results of the query.*/
while ($row = $movieresults->fetch(PDO::FETCH_ASSOC)) {

$return_arr[] = array(
    'label'=>$row['movie_name'], 
    'value'=>$row['movie_name'], 'id' => $row['id'], 
    'anyother_ui_name' => $row['value']); //build an array
//array_push($return_arr,$row_array);
}
于 2013-02-13T18:58:30.620 に答える