Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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 让AJAX与自动完成文本框一起工作_Php_Mysql_Ajax - Fatal编程技术网

Php 让AJAX与自动完成文本框一起工作

Php 让AJAX与自动完成文本框一起工作,php,mysql,ajax,Php,Mysql,Ajax,所以我真的被这段代码困住了。我想为文本框创建一个函数,该函数使用Ajax自动完成页面,并使用数据库中的数据在页面上实时显示结果。这已在运行,但仅适用于复选框。因此,当选中文本框时,页面将通过AJAX获得更新,结果将显示在屏幕上 现在,当你输入东西时,我希望文本框也一样。文本框具有自动完成功能,当您从列表中选择一个项目时,它将使用结果更新页面。这是我最初用于复选框的AJAX代码,但我不知道如何将其用于文本框部分 任何帮助都将不胜感激 阿贾克斯: 首先,你需要考虑你必须要做的事情。要开始,您需要绑定

所以我真的被这段代码困住了。我想为文本框创建一个函数,该函数使用Ajax自动完成页面,并使用数据库中的数据在页面上实时显示结果。这已在运行,但仅适用于复选框。因此,当选中文本框时,页面将通过AJAX获得更新,结果将显示在屏幕上

现在,当你输入东西时,我希望文本框也一样。文本框具有自动完成功能,当您从列表中选择一个项目时,它将使用结果更新页面。这是我最初用于复选框的AJAX代码,但我不知道如何将其用于文本框部分

任何帮助都将不胜感激

阿贾克斯:


首先,你需要考虑你必须要做的事情。要开始,您需要绑定键盘键入事件,并定义是从第一个字符还是第二个字符开始搜索,等等。。。使用一个或两个字符开始搜索可能会返回太多的结果,那么,您必须考虑在基本HTML列表中呈现结果的方式?并绑定click事件以加载结果页面。你可以重用你的ajax调用,确保处理另一个HTML标记。谢谢,我确实知道我想要什么以及如何做,但我不知道如何编写代码,也不知道从哪里开始查找这种特定的代码设置方式。我找到了这个库,在你的例子中,我可能是完美的。我看过这个库,但是它如何与mysql数据库一起工作呢?很简单。将serviceUrl:'service/autocomplete.ashx'更改为serviceUrl:'submit.php'。然后,您将在php脚本中收到一个$\u GET变量nammed query:这是您的查询!例如,如果您在键盘上键入Li,您的$\u GET['query']将是'Li'。处理您的MySQL查询,然后确保返回以下格式的JSON数组{查询:'Li',建议:['Liberia','Liberia Arab Minutes','列支敦士登','Lithutan'],数据:['LR','LY','Li','LT']}
function makeTable(data) {
    var tbl_body = "";
    $.each(data, function() {
        var tbl_row = "";
        $.each(this, function(k , v) {
            tbl_row += "<td>"+v+"</td>";
        })
        tbl_body += "<tr>"+tbl_row+"</tr>";
    })
    return tbl_body;
}

function getEmployeeFilterOptions(){
    var opts = [];
    $checkboxes.each(function(){
        if(this.checked){
            opts.push(this.name);
        }
    });
    return opts;
}

function getEmployeeFilterOptions2(){
    var opts = [];
    $onchange.each(function(){
        if(this.checked){
            opts.push(this.name);
        }
    });

    return opts;
}

function updateEmployees(opts){
    $.ajax({
        type: "POST",
        url: "submit.php",
        dataType : 'json',
        cache: false,
        data: {filterOpts: opts},
        success: function(records){
            $('#employees tbody').html(makeTable(records));
        }
    });
}

var $checkboxes = $("input:checkbox");
$checkboxes.on("change", function(){
    var opts = getEmployeeFilterOptions();
    updateEmployees(opts);
});

updateEmployees();