jquery autocomplete将空的get值发送给php

时间:2013-06-22 15:58:56

标签: php jquery jquery-ui jquery-plugins autocomplete

我是jquery n javascript的新手。我正在尝试制作自动填充功能。我正在使用diff页面中的示例代码来执行此操作。但它传递给php页面的'term'是空的。所以自动完成功能不起作用。我不明白为什么,有人可以看看吗?我没有更改标签,但我只是试图测试它是否有效。问题在于php页面,请求'term'是空的。

<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));



?>

3 个答案:

答案 0 :(得分:0)

我认为你需要这个:

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

您忘记了%符号,而没有%的LIKE等于email = '$q'

答案 1 :(得分:0)

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

  1. 尝试使用控制台$( "#txtLanguage" )
  2. 删除source.php并添加数组
  3. 希望这会对你有所帮助。

答案 2 :(得分:-1)

使用$ _GET ['term']代替$ _REQUEST ['term']