【问题标题】:Autocomplete with PHP使用 PHP 自动完成
【发布时间】:2012-01-30 14:20:03
【问题描述】:

这是我的 html 代码:

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jqueryui.js"></script>
    <script>
        $( "#tags" ).autocomplete({
        url: 'Ajax.php?txt='        
        });
    </script>
</head>
<body>
<div class="demo">
<div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags" name="txt" />
</div>
</div>
</body>
</html>

这是我的 Ajax.php

<? 
    $val = $_REQUEST["txt"];
    if($val == "251") { echo "its WoooW";}
    else 
    echo "Nothing found";
?>

但它不适用于自动完成功能。 我的错误是什么?

【问题讨论】:

  • 我可能是错的,但我认为您误读了自动完成功能的工作原理。乍一看,在我看来,您是在尝试“重新发明”轮子,而不是让 jQuery 完成“工作”
  • @user1178177 查看我的回答,希望对您有所帮助

标签: php jquery autocomplete


【解决方案1】:

您应该检查文档。 URL 属性不可用,但它是源属性:

文档:http://jqueryui.com/demos/autocomplete/#option-source

例子

        $( "#tags" ).autocomplete({
            source: 'Ajax.php'
        });

查询将根据您提供的链接添加

【讨论】:

  • 谢谢,但我想从 PHP 文件中读取 availableTags 的值
  • 所以请阅读:jqueryui.com/demos/autocomplete/#remote,您还需要将脚本内容封装到 $(document).ready...
  • 输入的内容将在 $_GET['term'] 变量中传递(默认用法)。检查你的萤火虫以了解它是如何工作的以及调用什么脚本
  • 检查你得到了什么 GET 变量!它不只是像您那样添加到 URL 中。做一些调试! ;)
  • @Topener:请在浏览器中检查您的代码,它不起作用。谢谢
【解决方案2】:

您必须将您的 jquery 包装成这样的函数:

<script>
    $(function() {
        $( "#tags" ).autocomplete({
            source: "Ajax.php",
            minLength: 2
        });
    });
</script>

并且您必须从 Ajax.php 返回 json_encoded 内容(示例) 它在文档中声明:

当使用字符串时(例如,不是一个集合数组),自动完成插件期望该字符串 指向将返回 JSON 数据的 URL 资源。它可以在 相同的主机或不同的主机(必须提供 JSONP)。请求 参数“term”被添加到该 URL。

<?php
$val = $_REQUEST["term"];

if($val == "251") { 
    $return="its WoooW 251";
}elseif($val == "123"){
    $return="its WoooW 123";
}else{
    $return="Nothing Found";
}

echo json_encode($return);
?>

【讨论】:

  • 是的,它的工作!但结果很有趣,输入 251,结果:i t s W o o o W 2 5 1
  • 嗨,即使我也在尝试这样。一切正常。但是 echo 语句也显示在我的浏览器上!是吗???
  • @sandy 你检查过你安装了 PHP 吗?
  • 好问题:-p。我修复了它……它是从其他一些函数中获取的:-p
猜你喜欢
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
相关资源
最近更新 更多