如何使用 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);

}

我究竟做错了什么?


翻过高山走不出你
浏览 130回答 1
1回答

慕田峪9158850

好吧,我找到了解决方案。将代码添加到 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 之后调用才有效。但我不确定。
打开App,查看更多内容
随时随地看视频慕课网APP