我正在构建一个需要使用 php-file
作为源自动完成的表单。
过滤是通过 strassenliste.php
完成的,其中每个 keydown
都会使用 ?term 执行新的
被附加到 URL(这对我来说仍然足够快)。php-call
=123
还有最后一个问题需要解决:
我有两个输入字段(第一个是 #plz
,第二个是 #strasse
),其中 plz
表示德语“zip”
”和strasse“街道
”。 #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
”前面。
有人知道吗?
非常感谢您的任何提示!
最佳答案
问题是您的行 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();
)};
关于php - 使用 php 作为远程源的 Jquery 自动完成 : how to append second variable from input to source,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18424443/