2

私はこのオートコンプリートphp関数を持っています:

検索.php

if ( !isset($_REQUEST['term']) )
    exit;

$dblink = mysql_connect('localhost', 'root', '') or die( mysql_error() );
mysql_select_db('inb');

$rs = mysql_query('select name, l_name, level from pacient 
            where name like "'. mysql_real_escape_string($_REQUEST['term']) .'%"
            or l_name like "'. mysql_real_escape_string($_REQUEST['term']) .'%"
            order by name asc limit 0,10', $dblink);

$data = array();
if ( $rs && mysql_num_rows($rs) )
{
    while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
    {
        $nivel = $row['nivel_nivel'];
        $data[] = array(
            'label' => $row['name'].' '. $row['l_name'].' '.$row['level'],
            'value' => $row['name'].' '. $row['l_name'].' '.$row['level']
        );
    }
}
echo json_encode($data);
flush();
?>

私はそれをhtmlメインファイルに呼び出します:

jQuery(document).ready(function(){ 
            $('#nameField').autocomplete({source:'search.php', minLength:1});
        });

ここで、php ファイルで作成したクエリの値を取得し、html ファイルの入力フィールドに配置します。どうすればこれを作ることができますか?

4

1 に答える 1

0

responseJSオートコンプリート定義でメソッドのリスナーを設定できます。PHPを変更して、そのデータセットのどこかに必要な新しい値を含める必要があります。

このようなもの:

$data[] = array(
        'label' => $row['name'].' '. $row['l_name'].' '.$row['level'],
        'value' => $row['name'].' '. $row['l_name'].' '.$row['level'],
        'foo' => <WHATEVER VALUE YOU WANT HERE>
    );

そしてjQueryで:

$('#nameField').autocomplete({
    source:'search.php', 
    minLength:1,
    response : function(event, data) {
        data.content[0].foo; //this will have your foo value, do whatever you want with it here
    }
});
于 2013-03-19T21:09:27.300 に答える