我有一些以这种格式返回的数据:
[{
label: "Store Name",
address: "123 Somewhere Blvd",
city: " Atlanta",
state: "11",
zip: "30333"
}]
我想知道是否有办法将“州”部分转换为州名称而不是其 ID 号。 我的数据库中有一个表将状态与 ID 相匹配,并且我已经能够使用 PHP 转换 php 中的状态。我确实在某处读到过,我无法将 php 代码放入我的数据库中。 jQuery 代码所以我有点卡在那里。
在我的示例中,我使用 ajax 自动完成脚本提取商店列表,并使用以下代码处理输出:
function myFunction() {
if (searchValue.length > 3) {
var acs_action = 'autocompletesearch';
$.ajax({
async: false,
url: MyAcSearch.url+'?action='+acs_action+'&term=' + searchValue,
type: 'POST',
data: {
name: searchValue
},
success: function (results) {
var data = $.parseJSON(results);
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
var item = data[i];
html += '<li>';
html += '<div class="row">';
html += '<div class="col-sm-9">';
html += ' <h3>' + item.label + '</h3>' ;
html += ' <span>' + item.city + ' , ' + item.state + ' , ' + item.zip + '</span>';
html += '</div>';
html += '</div>';
html += '</li>';
}
}
}
});
}
}
结果按预期返回,其中包含 ID 号而不是州名称。有没有办法捕获状态 id 值并在显示之前将其转换为状态名称?我尝试过研究一些不同的事情,但我觉得我走错了方向。任何帮助,将不胜感激。谢谢您
****我可能完全以错误的方式处理这个问题。任何方向将不胜感激****
最佳答案
如果您控制数据源(无论发送状态:“11”
),那么您最好的选择是更新该脚本以返回状态名称或代替状态身份证号。
如果您无法控制数据源,一种选择是在 PHP 中创建所有州 ID/名称的数组,对该数组进行 JSON 编码并将其打印为 JavaScript,然后查看必要时通过 ID 指定适当的状态名称:
<?php
$array = [..., '11'=>'Delaware', '12'=>'Florida', ...];
?>
<html>
<head>
<script>
var States = <?php echo json_encode($array); ?>;
</script>
...
<script>
function myFunction() {
...
html += ' <span>' + item.city + ' , ' + States[item.state] + ' , ' + item.zip + '</span>';
...
}
</script>
</head>
...
</html>
关于php - 在 HTML 中显示之前转换 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31257720/