0

我正在尝试在我的网站上开发一项功能,该功能会自动从我的表格中获取可用的路线并将它们填充到 jQuery 自动完成文本框中,该文本框会在输入时显示结果

我已经设法将查询放在一起,并且效果很好……但是没有添加 jQuery

这是自己的代码

<?PHP  
mysql_connect('localhost', 'sample', 'sample'); 
mysql_select_db('winning'); 
$sql = "SELECT distinct rout_to FROM search_v ORDER BY rout_to ASC" ; 
$result = mysql_query($sql); 
echo '<div class="ui-widget"><select id="combobox" name="arrival_label">'; 
while ($row = mysql_fetch_array($result)) echo "<option value='" . $row['rout_to'] . "'>" . $row['rout_to'] . "</option>"; 

echo "</select></div>"; ?>

当我从 jquery ui 库中测试自动完成组合框时,它自己运行良好,没有 php 数据

我的问题是,我怎样才能让这两个玩得很好?

4

2 回答 2

0
<?php
    $autocomplete = array();
    mysql_connect('localhost', 'sample', 'sample'); 
    mysql_select_db('winning');
    $sql = mysql_query('SELECT distinct rout_to FROM search_v ORDER BY rout_to ASC');
    $r = $db->query($q);
    while ($row = mysql_fetch_array($result))
      $autocomplete[] = $row['rout_to'];
    }
?>
<script type="text/javascript">
  $(function() {
    var availableItems = [ <?php print '"'.implode('","', $autocomplete).'"'; ?> ];
    $("#combobox").autocomplete({
      source: availableItems,
      minLength: 3
    });
  });
</script>

注意:刚刚写出来,可能需要定制。

编辑:在您的 HTML 中,您需要一个input带有 id 的元素combobox

于 2012-04-12T10:27:37.670 回答
0

您可能想尝试使用 Jquery UI 的自动完成插件。

<?php
    $autocomplete = array();
    mysql_connect('localhost', 'sample', 'sample'); 
    mysql_select_db('winning');
    $sql = mysql_query('SELECT distinct rout_to FROM search_v ORDER BY rout_to ASC');
    $r = $db->query($q);
    while ($row = mysql_fetch_array($result))
      $autocomplete[] = $row['rout_to'];
    }
?>
<script>
    $(function() {
        var availableTags = [
          <?php foreach($autocomplete as $a){
              echo '"'.$a.'",';
          }?>
        ];
        $( "#tags" ).autocomplete({
            source: availableTags
        });
    });
</script>

HTML 代码:

<div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags">
</div>

我认为在这种情况下,您将不再使用选择标签而是输入标签。我希望它有所帮助。

谢谢,戴夫

于 2012-04-12T10:38:56.610 回答