2

http://jqueryui.com/demos/autocomplete/#remoteから ui オートコンプリートを 使用しています search.php で PHP を使用して結果を返します。

私のカスタム出力を取得しようとしています

<li>Company Name | Contact Name</li>

これは、次のコードから来ています。

if(is_array($rs) && count($rs) > 0){
        foreach ($rs as $item) {
            //format: "Name Surname=>cid_uid"
            $json = array();
            $json['id'] = $item['parentCompanyId'].'_'.$item['uid'];
            $json['label'] = $item['companyName'] . ' | ' . $item['name'] . ' ' . $item['surname'];
            $data[] = $json;
        }
    }

これは非常にうまく機能しますが、結果を読みやすくするために、 < li > タグ内の 2 行に結果を表示して、次のようにしたいと考えています。

<li>
Contact Name<br>
Company Name | Department Name
</li>

私は次のことを試しました:

$json['label'] = $item['name'] . ' ' . $item['surname'] . '\n' .$item['companyName'];

$json['label'] = $item['name'] . ' ' . $item['surname'] . '<br>' .$item['companyName'];

$json['label'] = $item['name'] . ' ' . $item['surname'] . '\\n' .$item['companyName'];

すべての試行は、実際の<br>タグを表示するか\n、次の行にプッシュするのではなく、リストになります。

firebug ショーでソースを表示するName&lt;br&gt;Company

これが次の理由で発生しているかどうかは不明です。

header("Content-type: application/json");
echo json_encode($data);

私の質問は、autocomplete/php/json を介してタグ内に 2 行を生成する HTML 出力を取得することに関連していることに注意してください<li>。部門名を追加する方法については質問していません。

4

2 に答える 2

7

_renderItemメソッドをオーバーライドします。

$("#autocomplete").autocomplete()
    .data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( item.label )
            .appendTo( ul );
    };

ドキュメントのこのデモは同じことを行います: http://jqueryui.com/demos/autocomplete/#custom-data

デフォルトで.append( item.label )は、これがあなたのがに置き換えられる.text( item.label )理由です<br />&lt;br /&gt;

于 2012-06-07T14:53:36.100 に答える