php - 在 HTML 中显示之前转换 JSON 数据

标签 php jquery ajax json

我有一些以这种格式返回的数据:

[{
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/

相关文章:

jQuery 事件触发问题

javascript - Ajax 调用没有警报

javascript - laravel 5中使用ajax插入数据时页面刷新且数据不会添加

PHP:加载 gzip 压缩的 javascript 文件

php反射获取属性而不获取基类的属性

Javascript/jQuery - 如何调用 switch case 从另一个函数执行

javascript - 使用选定的单选按钮在页面加载时呈现输入

javascript - Ajaxify PushState 推送 CSS 文件?

php - 为什么我得到 : Warning: printf() Too few arguments in php

php - 检查用户是否在兼容模式下使用 IE