【问题标题】:Jquery autocomplete with php as remote source: how to append second variable from input to source使用 php 作为远程源的 Jquery 自动完成功能:如何将第二个变量从输入附加到源
【发布时间】:2013-08-27 18:44:27
【问题描述】:

我正在构建一个表单,该表单需要使用 php-file 作为源自动完成。

过滤是通过strassenliste.php 完成的,每个keydown 都会执行一个新的php-call,并将?term=123 附加到URL(这对我来说仍然足够快)。

还有最后一个问题可以让事情正常工作:

我有两个输入字段(第一个是#plz,第二个是#strasse),其中plz 表示德语“zip”和strasse“street”。 #strasse 是要自动完成的字段(通过?term=...)。

当用户离开第一个输入字段,即#plz (onblur) 时,此输入 (zipcode) 应存储在 JavaScript 变量中,并附加到 jQuery 自动完成代码中的 URL strassenliste.php 中,例如例如--> 来源:'strassenliste.php?plz=12345&'。

#strasse 的输入也将被附加,这已经有效:?term=[input]

我仍然无法正常工作的是参数zip(后跟&)被附加到URL strassenliste.php

因此,自动完成代码中的来源应该是 URL --> strassenliste.php?plz=12345&[term=...]

这是我已经拥有的代码:


JavaScript 部分:

<script>
$("#plz").blur(function () {
var plz = $(this).val();
}).keyup();
var url = "strassenliste.php" + "?=&" + plz;

$(function() {
$( "#strasse" ).autocomplete({
source: url   
});

...

</script>

PHP 部分:

$plz = $_GET['plz'];
$term = $_GET['term'];


[SOAP-Call and response]
...

foreach ($sxe->searchresults as $searchresults) {
$array[] = utf8_encode($searchresults->strasse);

sort ($array);

$strassen = "[";
foreach ($array as $key => $val) {
$strassen .= utf8_decode("\"" . ($val) . "\",");
}
$strassen .= "\"\"";

$length = strlen($strassen);
$strassen = substr($strassen, 0, $length - 3);

$strassen .= "]";

echo ($strassen);

PHP 不是问题,这是可行的。我通过为变量 $plz 提供一个固定值并在 jQuery 部分中将源设置为 strassenliste.php 来测试它。

但我仍然对 jQuery-Part 有问题,这是让它工作的最后一个障碍。

第二个是自动补全[term =]中的问号可能不会出现,因为它已经附加在“plz=12345”前面。

有人知道吗?

非常感谢您的任何提示!

【问题讨论】:

    标签: php jquery autocomplete


    【解决方案1】:

    问题是您的行var url = "strassenliste.php" + "?=&amp;" + plz; 看不到变量plz,因为它在blur 函数的范围内。

    您还在 URL 中奇怪地格式化了 GET 变量。正常方式是myURl.php?var1=Helmut&amp;var2=Thielicke

    试试这个:

        $(function() {        
            $("#plz").blur(function () {
                var plz = $(this).val(),
                    url = "strassenliste.php" + "?plz=" + plz;
    
                $("#strasse").autocomplete({
                    source: url   
                }); 
            }).keyup();
        )};        
    

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 2021-12-08
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 2012-05-09
      相关资源
      最近更新 更多