我的控制器中有以下代码:

$regions = $this->signup_m->get_regions($country_id);
foreach ($regions as $key => $region) {
     echo "<option value='$key'>$region</option>";
}


它是由ajax请求调用的。与其在控制器中构建HTML,不如返回一个json对象,从中可以构建下拉选项。如何以json格式发送此数据?

我了解了PHP的json_encode函数,并且在需要发送回单个对象时可以使用它,但是在这种情况下,我认为我需要发送回多个对象(每个下拉选项一个)。因此,由于处于循环状态,因此不确定如何进行操作。

最佳答案

在PHP中:

$regions = $this->signup_m->get_regions($country_id);
$jsonObj = array();
foreach ($regions as $key => $region) {
    $jsonObj[] = (object) array('value'=>$key, 'test'=>$region);
}
echo json_encode($jsonObj);


在javascript中,您将收到一个json对象。如果您使用的是jquery,则已经设置完毕,只需遍历数组即可。否则,您将不得不解析/评估它,然后遍历它

10-07 16:07