Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由数据库填充的自动完成表单?_Php_Jquery_Database_Autocomplete - Fatal编程技术网

Php 由数据库填充的自动完成表单?

Php 由数据库填充的自动完成表单?,php,jquery,database,autocomplete,Php,Jquery,Database,Autocomplete,我目前正在一个项目中,我需要有一个自动完成表单调用它的信息从数据库文件工作。我看过很多关于jquery自动完成表单的教程,但我不知道如何调用db文件来填充列表 我在PHP工作。目前,该代码表示一个简单的下拉框,用于调用db文件进行填充 <?php global $wpdb; $depts = $wpdb->get_results( "SELECT * FROM departments ORDER BY department_name ASC" ); e

我目前正在一个项目中,我需要有一个自动完成表单调用它的信息从数据库文件工作。我看过很多关于jquery自动完成表单的教程,但我不知道如何调用db文件来填充列表

我在PHP工作。目前,该代码表示一个简单的下拉框,用于调用db文件进行填充

    <?php
    global $wpdb;
    $depts = $wpdb->get_results( "SELECT * FROM departments ORDER BY department_name ASC" );
    echo '<select>';

    foreach($depts as $row) {
        echo '<option name="select_dept" value="'.$row->department_id.'">'.$row->department_name.'</option>';
    }
    echo '</select>';
?>


任何帮助都会很棒

请遵循这篇写得非常好的教程


我最近使用此库进行自动完成- 以下是基于您的简短脚本:

<?php

$query = isset($_GET['query']) ? $_GET['query'] : FALSE;

if ($query) {
    global $wpdb;
    // escape values passed to db to avoid sql-injection
    $depts = $wpdb->get_results( "SELECT * FROM departments WHERE department_name LIKE '".$query."%' ORDER BY department_name ASC" );

    $suggestions = array();
    $data = array();
    foreach($depts as $row) {
        $suggestions[] = $row->department_name;
        $data[] = $row->department_id;
    }
    $response = array(
        'query' => $query,
        'suggestions' => $suggestions,
        'data' => $data,
    );
    echo json_encode($response);
} else {
?>
<html>
<body>
<input type="text" name="" id="box" />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="http://www.devbridge.com/projects/autocomplete/jquery/local/scripts/jquery.autocomplete.js"></script>

<script type="text/javascript">

$(document).ready(function(){
    $('#box').autocomplete({ 
        serviceUrl:'/',
        // callback function:
        onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); },
    }); 
});
</script>
</body>
<html>
<?}?>

$(文档).ready(函数(){
$(“#框”).autocomplete({
serviceUrl:“/”,
//回调函数:
onSelect:function(value,data){alert('您选择的:'+value+','+data);},
}); 
});
包括一个自动完成,尽管您仍然需要编写一个PHP脚本来返回要添加到控件中的信息,就像它通过AJAX完成一样。若您知道如何在PHP中连接数据库、查询数据库并返回结果列表,那个么您将不会遇到任何问题。JQuery使AJAX非常简单

根据您的字段/数据集的复杂程度,并假设它不是数百万条未编制索引的记录,我将满足于从以下位置自动完成:

SELECT thing WHERE thing LIKE '".$query."%'
所以如果你在寻找,比如说,食物。。。查询“CA”将拔出胡萝卜、卷心菜和花椰菜。如果您在LIKE的开头添加了一个%,那么您可以得到包含您的查询的结果,而不是仅仅从它开始

用户点击的页面将包含JQuery部分,该部分发送请求并从结果中创建自动完成效果,以及一个非常简单、单独的PHP脚本,AJAX请求点击该脚本将返回潜在的“匹配”


请看

感谢您的快速回复!不过,我正在寻找一种“更便宜”的方法,只需在同一页面中使用javascript和php,只需调用db文件即可。@captainrad-一点问题也没有-不过我不确定你会得到多少“便宜”