0

jqueryとajaxでオートコンプリートされる入力ボックス(name:state_name id:state_name)があります。「bsn.AutoSuggest_2.1.3」jqueryプラグインを使用しています。これはhtmlです。

<input type="text" name="state_name" id="state_name" />
<input type="text" name="s_n_state" id="s_n_state"  value="<?=$letter_1?>"/>

これはjqueryコードです

<script type="text/javascript">
var options = {
        script:"includes/search_state.php?json=true&limit=6&",
        varname:"state_name",
        json:true,
        shownoresults:false,
        maxresults:6,
        callback: function (obj) { document.getElementById('s_n_state').value = obj.id; }
};
var as_json = new bsn.AutoSuggest('state_name', options);
</script>

以下はsearch_state.phpコードです-

<?
include_once 'connection.php';
header("Content-Type: application/json");
    $state_name = $_GET['state_name'];
        echo "{\"results\": [";
        $arr = array();
        $result = mysql_query("select * from states where state_name like '%$state_name%'") or die(mysql_error());
                while($row = mysql_fetch_array($result))
                {
            $arr[] = "{\"id\": \"".$row['state_id']."\", \"value\": \"".$row['state_name']."\"}";
                }
        echo implode(", ", $arr);
        echo "]}";
?>

ブラウザのコンソールで表示するとajaxから応答を受け取りますが、Webページに表示されません。また、応答からs_n_state入力ボックスへのstate_idを保存して、使用できるようにします。

4

1 に答える 1

0

オートコンプリートでも同様の問題が発生しました。私の回避策は、他のvalue.eg "key:value"と連結された区切り文字を使用してstate_idを格納することでした。サーバー側では、単純に解析しました。おそらく、キーまたは値に他の区切り文字はありません。これは最もエレガントではありませんが、私の状況のほとんどでうまく機能します。

于 2012-12-27T04:56:04.167 に答える