2013-06-22 26 views
0

我很新jQuery n JavaScript。我正在尝试创建自动完成功能。我正在使用diff页面中的示例代码来执行此操作。但是它传递给php页面的'term'是空的。所以自动完成不起作用。我不明白为什么,有人可以看看?我没有改变标签,但我只是试图测试它,看它是否工作。问题在于php页面,请求的'term'是空的。jquery自动完成发送空的获取值到php

<head> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" /> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
    <script> 
    $(function() { 
     $("#txtLanguage").autocomplete({ 
      source: "source.php", 
      minLength: 1 // how many character when typing to display auto complete 
     }); 
    }); 
    </script> 
</head> 
<body> 
<label for="Language">Language: </label> 
    <input id="txtLanguage" class="txtLanguage"/> 
</div> 
</body> 
</html> 

<?php 

include 'dbconnect.php'; 



    $q=$_REQUEST['term']; 

    echo $q; 

    $return = array(); 
    $stat="SELECT email FROM users WHERE email LIKE '$q'"; 
    $query = sqlsrv_query($conn,$stat); 
    while ($row = sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC)) { 
     array_push($return,array('label'=>$row['email'],'value'=>$row['email'])); 
    } 
    echo(json_encode($return)); 



?> 
+0

此页面名称是“search.php”吗? – jperelli

+0

不,它是source.php –

回答

-1

使用$ _GET [ '术语']而不是$ _REQUEST [ '长期']

+0

我已经尝试过。它仍然没有工作。 –

+1

'$ _REQUEST'自动包含'$ _GET'和'$ _POST'中的所有内容(除非您禁用该PHP功能)。 – Barmar

+0

@Barmar这是怎么做到的,我的意思是它如何被禁用? –

0

我认为你需要这样的:

$stat="SELECT `email` FROM `users` WHERE `email` LIKE '$q%'"; 

你忘了%符号和LIKE不%等于email = '$q'

+0

oki,所以这里是发生了什么,我改变了它,现在它显示所有的电子邮件值,所有这些都不在HTML页面中,而是在source.php中。我只是回应他们只是为了看看它是否有效。 $ q仍然是空的,但我认为JSON的东西是显示 –

+0

所有这些源文件在一个文件? – DBuTbKa

+0

是啊,同一个文件我的意思是 –

0

你确定,文件路径是否正确?控制台中是否有任何javascript错误?

  1. 尝试控制台$("#txtLanguage")
  2. 删除source.php并添加阵列

希望这有助于你。