如何用PHP分隔街道名称和门牌号码



在德国,我们有街道名称和门牌号。我使用的数据库中,两者都存储在一列中(例如"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之后调用时才有效。但我不确定。

最新更新