0

我有一个输入框(名称:state_name id:state_name),它使用 jquery 和 ajax 自动完成。我正在使用“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 的响应,但它在网页中不可见,而且我想将 state_id 从响应存储到s_n_state输入框,以便我可以使用它。

4

1 回答 1

0

我在自动完成方面遇到了类似的问题。我的解决方法是使用与其他值连接的分隔字符来存储 state_id。例如“key:value”。在服务器端,只需将其解析出来。据推测,您的键或值中没有其他分隔符。它不是最优雅的,但在我的大多数情况下都很好用。

于 2012-12-27T04:56:04.167 回答