1

データベース内のレコード間を検索できる検索ボックスを作りたいです。

search.phpは次のようになります。

<?php
// connect to mysql
require_once('includes/connect.php');
// include config
include('includes/config.php');

$nameser = $_GET['term'];

$names = array();
$result = mysql_query("SELECT name,customerid FROM customers WHERE name LIKE '%".$nameser."%' ORDER BY name ASC");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $row_array['id'] = $row['customerid'];
    $row_array['value'] = htmlentities($row['name']);

    array_push($names,$row_array);
   }

echo json_encode($names);

?>

Javascriptの部分は次のようになります。

    $("#tags").autocomplete({
        source: "search.php",
        minLength: 2,
        select: function(event, ui) {
          window.location = ("customers.php?action=view&cid=" + item.id)
          //$('#tags').val(ui.item.id);
          //return false;
        }
    })
    .data("autocomplete")._renderItem = function( ul, item ) {
    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a href='customers.php?action=view&cid="+ item.id + "'>"+ item.label + "</a>" )
        .appendTo( ul );
    };

ただし、これによりエラーが発生します。

ReferenceError: item is not defined

私がしたいのは、結果リストで何かをクリックすると、URLにリダイレクトされるということです

customers.php?action=view&cid={CustomerID}

誰かアイデアがありますか?

編集:

動作する正しいJavascriptコード:

$("#tags").autocomplete({
    source: "search.php",
    minLength: 2,
    select: function(event, ui) {
      window.location = ("customers.php?action=view&cid=" + ui.item.id)
      //$('#tags').val(ui.item.id);
      //return false;
    }
})
.data("autocomplete")._renderItem = function( ul, item ) {
return $( "<li></li>" )
    .data( "item.autocomplete", item )
    .append( "<a href='customers.php?action=view&cid="+ item.id + "'>"+ item.label + "</a>" )
    .appendTo( ul );
};
4

1 に答える 1

3

jsfiddleでの実例を含むデモがあります。あなたはここでそれを見ることができます:

重要なのは、autoselectselectメソッドで有効なURL値を取得することです。使用できるものを確認できるように、必ずUI値をconsole.logに記録してください。標準のui.item.value値を使用して、ユーザーを別のページに移動することができました。

私のデモをテストするには:

1.)入力ボックスに移動し、「a」と入力します。2.)「http://www.utexas.edu」を選択します。3。)新しいページが読み込まれます。

于 2012-06-17T17:30:12.380 に答える