【发布时间】: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