使用php作为远程源的Jquery自动完成:如何将第二个变量从输入追加到源

时间:2013-08-25 00:16:43

标签: php jquery autocomplete

我正在构建一个表单,该表单需要以php-file作为源代码进行自动填充。

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

最后一个问题是让事情发挥作用:

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

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

strassenliste.php?plz=12345&的输入也将被附加,已经有效:#strasse

我仍然无法正常工作的是,参数?term=[input](后跟zip)会附加到网址&

因此,自动填充代码中的来源应为网址 - > strassenliste.php

这是我已经拥有的代码:


JavaScript的部分:

strassenliste.php?plz=12345&[term=...]

PHP-部分:

<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); 提供修复值并在jQuery-part中将源设置为$plz来测试它。

但我仍然遇到jQuery-Part的问题,这是让它运行的最后一个障碍。

第二个问题是自动填充strassenliste.php中的问号可能不会显示,因为它已经附加在“[term =]”前面。

有没有人有线索?

非常感谢您的提示!

1 个答案:

答案 0 :(得分:1)

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

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

试试这个:

    $(function() {        
        $("#plz").blur(function () {
            var plz = $(this).val(),
                url = "strassenliste.php" + "?plz=" + plz;

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