使用jquery ajax自动完成输入框,但希望在任何其他字段中存储相应的id


autocomplete input box with jquery ajax but want to store coressponding id in any other field

我有一个输入框(名称:state_name id: state_name),这是自动完成与jquery和ajax。我使用的是"bsn. autosuggest .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获得响应,但它在网页中不可见,我还想将state_id从响应存储到s_n_state输入框,因此我可以使用它。

我有类似的问题与自动完成。我的解决方法是使用与其他值连接的分隔字符来存储state_id,例如"key:value"。在服务器端,只需将其解析出来。假定在键或值中没有其他分隔字符。它不是最优雅的,但对我的大多数情况都很有效。