Javascript 使用php从数据库填充初始化Jquery数组时,Jquery标记编辑器不工作
我正在尝试在我的项目上创建一个标记系统。我在我的网站中使用作为标记系统。他们使用jquery代码,如Javascript 使用php从数据库填充初始化Jquery数组时,Jquery标记编辑器不工作,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我正在尝试在我的项目上创建一个标记系统。我在我的网站中使用作为标记系统。他们使用jquery代码,如jquery-1.10.2.min.js等(他们自己的)。此工具中有一个php代码,它将使用标记名和标记id初始化数组。初始化后,jquery将处理所有客户端工作(标记设施) 现在的问题是,他们在代码中手动初始化了该数组。但由于明显的原因,我不能这样做。我必须从数据库中动态初始化该数组。每当我尝试动态初始化它时,整个过程都不起作用。我对它进行了大量调试,发现在下一步初始化之后,他们正在检查if(i
jquery-1.10.2.min.js
等(他们自己的)。此工具中有一个php代码,它将使用标记名和标记id初始化数组。初始化后,jquery将处理所有客户端工作(标记设施)
现在的问题是,他们在代码中手动初始化了该数组。但由于明显的原因,我不能这样做。我必须从数据库中动态初始化该数组。每当我尝试动态初始化它时,整个过程都不起作用。我对它进行了大量调试,发现在下一步初始化之后,他们正在检查if(isset($\u GET['term'])
而这个isset($\u GET['term'])
总是返回false。为什么
这是他们的代码::
$autocompletiondata = array(
3 => 'Hazel Grouse',
4 => 'Common Quail',
5 => 'Common Pheasant',
6 => 'Northern Shoveler',
7 => 'Greylag Goose',
8 => 'Barnacle Goose',
9 => 'Lesser Spotted Woodpecker',
10 => 'Eurasian Pygmy-Owl',
11 => 'Dunlin',
13 => 'Black Scoter',
14 => 'Eurasian Wryneck',
15 => 'Little Owl',
16 => 'Eurasian Curlew',
);
if(isset($_GET['term'])) {
$result = array();
foreach($autocompletiondata as $key => $value) {
if(strlen($_GET['term']) == 0 || strpos(strtolower($value), strtolower($_GET['term'])) !== false) {
$result[] = '{"id":'.$key.',"label":"'.$value.'","value":"'.$value.'"}';
}
}
echo "[".implode(',', $result)."]";
}
//$link is database connection link
$query = mysqli_query($link,"select id,tag_name from tags order by no_of_times_used desc");
$autocompletiondata=array();
while($row = mysqli_fetch_object($query))
{
$autocompletiondata +=array($row->id => $row->tag_name);
}
if(isset($_GET['term'])) {
$result = array();
foreach($autocompletiondata as $key => $value) {
if(strlen($_GET['term']) == 0 || strpos(strtolower($value), strtolower($_GET['term'])) !== false) {
$result[] = '{"id":'.$key.',"label":"'.$value.'","value":"'.$value.'"}';
}
}
echo "[".implode(',', $result)."]";
}
上述代码工作正常。整个标记系统工作正常。但当我尝试从数据库动态初始化该数组时,它不工作。整个标记系统停止工作
这是我的代码::
$autocompletiondata = array(
3 => 'Hazel Grouse',
4 => 'Common Quail',
5 => 'Common Pheasant',
6 => 'Northern Shoveler',
7 => 'Greylag Goose',
8 => 'Barnacle Goose',
9 => 'Lesser Spotted Woodpecker',
10 => 'Eurasian Pygmy-Owl',
11 => 'Dunlin',
13 => 'Black Scoter',
14 => 'Eurasian Wryneck',
15 => 'Little Owl',
16 => 'Eurasian Curlew',
);
if(isset($_GET['term'])) {
$result = array();
foreach($autocompletiondata as $key => $value) {
if(strlen($_GET['term']) == 0 || strpos(strtolower($value), strtolower($_GET['term'])) !== false) {
$result[] = '{"id":'.$key.',"label":"'.$value.'","value":"'.$value.'"}';
}
}
echo "[".implode(',', $result)."]";
}
//$link is database connection link
$query = mysqli_query($link,"select id,tag_name from tags order by no_of_times_used desc");
$autocompletiondata=array();
while($row = mysqli_fetch_object($query))
{
$autocompletiondata +=array($row->id => $row->tag_name);
}
if(isset($_GET['term'])) {
$result = array();
foreach($autocompletiondata as $key => $value) {
if(strlen($_GET['term']) == 0 || strpos(strtolower($value), strtolower($_GET['term'])) !== false) {
$result[] = '{"id":'.$key.',"label":"'.$value.'","value":"'.$value.'"}';
}
}
echo "[".implode(',', $result)."]";
}
正如我所说,上面的代码不起作用,整个标签系统现在停止了工作
注意:我尝试了多种方式来编写代码,比如在($autocompletiondata[$row->id]=$row->tag_name;
)方式中使用in-while循环初始化数组,而不是声明$autocompletiondata=array()代码>外部while loop
。尝试了很多次,但没有一次对我有效
我可以保证的是,mudbConfig.php
是绝对好的,因为我与数据库的其他交互工作非常好
现在我的问题是如何解决这个问题?我应该如何使用数据库中的值初始化数组以使这个标记系统工作?该函数检查是否声明了变量。当给定变量不存在时,此函数返回false
$\u GET
是一个url参数数组。
因此,如果isset($\u GET['term'])
返回false,这意味着当前url不包含名为term
的参数。所以,尝试添加类似于yourlink.com?term=something
的内容,然后点击回车键
此外,要使用数据库中的数据初始化数组,应该编写以下代码
//---
$query = mysqli_query($link,"select id,tag_name from tags order by no_of_times_used desc");
$autocompletiondata=array();
while($row = mysqli_fetch_object($query))
{
$autocompletiondata[$row->id]=$row->tag_name;
}
//-----
isset($\u GET['term'])
似乎是Php,not JQUERY你能告诉我它不工作的原因吗???因为当我尝试使用他们的默认代码时,我不需要像yourlink.com?term=something
那样初始化数组,它只会创建一行。我的意思是,在执行整个while循环之后,只有最后一个对象值会出现。不,我认为问题出在哪里是因为你没有用好的方法初始化数组!请看我最后的编辑!初始化数组的方式将只创建一行。我的意思是,在执行整个while循环之后,只有最后一个对象值会在那里。否?$autocompletiondata[]=…
表示每一行都附加到现有对象。串联运算符+=
没有意义。