Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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
Javascript 使用php从数据库填充初始化Jquery数组时,Jquery标记编辑器不工作_Javascript_Php_Jquery_Arrays - Fatal编程技术网

Javascript 使用php从数据库填充初始化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代码,如
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
。尝试了很多次,但没有一次对我有效

我可以保证的是,mu
dbConfig.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[]=…
表示每一行都附加到现有对象。串联运算符
+=
没有意义。