在德国,我们有街道名称和门牌号。我使用的数据库中,两者都存储在一列中(例如"Arnoldstraße 12"(,我想将两者分离为单个变量。
我有这个代码:
$street= $row[2]; //This row is from an array with values of the database. The other rows are submitted perfectly.
preg_match('/([^d]+)(d+.*)/', $street, $matches);
$street_new = trim($matches[1]);
$house_number= trim($matches[2]);
while ($row = $jobDB->fetchArray($result)) {
$this->setReturnValue('strasse', $street_new);
$this->setReturnValue('hausnummer', $house_number);
return;
}
之后,我使用JS代码将其(以及更多值(转换为网站上的表单。其他值都没有问题,只缺少街道名称和门牌号。
这是JS代码:
var auto_complete = function() {
var kontonr = jr_get_value('tb_kundennummer');
jr_execute_dialog_function('autoComplete', {kontonummer: kontonr}, mySuccessCallback);
}
var mySuccessCallback = function(returnObject) {
jr_set_value('tb_kunde_strasse', returnObject.result.street_new);
jr_set_value('tb_kunde_hausnummer', returnObject.result.house_number);
}
我做错了什么?
提前感谢!:(
好的,我找到了一个解决方案。在将代码添加到while循环中后,它完美地工作了:
while ($row = $jobDB->fetchArray($result)) {
$street= $row[2];
preg_match('/([^d]+)(d+.*)/', $street, $matches);
$street= trim($matches[1]);
$house_number= trim($matches[2]);
$this->setReturnValue('strasse', $street);
$this->setReturnValue('hausnummer', $house_number);
return;
}
我不是一个开发人员,但可能是因为$row只有在fetchArray之后调用时才有效。但我不确定。