我正在努力让 jQuery UI 自动完成功能能够从远程数据源工作。 http://jqueryui.com/demos/autocomplete/#remote
示例代码调用php脚本search.php
$(function() {
$( "#birds" ).autocomplete({
source: "search.php",
minLength: 2
});
});
search.php 代码片段的第一行
$q = strtolower($_GET["term"]);
if (!$q) return;
$items = array( //set a bunch of key-value pairs);
$q = strtolower($_GET["term"]);
到底是什么意思? !q
不是总是评估为 true 导致 .php 脚本返回,从而阻止脚本的其余部分执行吗?
编辑
作为引用,如果您访问http://jqueryui.com/download并下载自动完成包,我所指的确切示例在
中引用- development-bundle/demos/autocomplete/search.php
- development-bundle/demos/autocomplete/remote.html
最佳答案
strtolower 调用获取查询字符串变量 term 并将其转换为小写;例如search.php?term=TEST 导致“test”保存在 $q 中。如果您要从区分大小写的源检索数据,那么您可能需要执行此操作以确保“test”和“TEST”的术语值返回相同的数据。
!$q 测试 $q 是否没有值;是因为它没有在 URL 中传递或者它是空的 (search.php?term=)。
您可以使用以下方法测试此逻辑:
<?php
$q = strtolower($_GET["term"]);
echo $q ? '$q was set' : '$q was not set'
?>
输出:
search.php => $q was not set search.php?term= => $q was not set search.php?term=TEST => $q was set
关于php - 来自远程数据源的 jQuery UI 自动完成示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136964/