0

我在将 JSON 字符串的值生成到下拉菜单中时遇到问题。我有一个 JSON API

http://service.proventustechnologies.com/api/json?username=demo&token=4ce26206-025d-11dc-8314-0800200c9a66&method=getattributevalues&dimensionId=10

当您单击它时,您将看到许多这样的值。

{
"response": {
    "id": 10,
    "values": [
        {
            "id": 258,
            "value": "Cameras"
        },
        {
            "id": 2581,
            "value": "GPS Navigation"
        },
        {
            "id": 259,
            "value": "MP3 Players"
        },
        {
            "id": 260,
            "value": "Cell Phone/PDA"
        },
        {
            "id": 6377,
            "value": "Digital Photo Frame"
        },
        {
            "id": 110,
            "value": "Motherboard"
        },
        {
            "id": 108,
            "value": "Desktop/Server"
        },
        {
            "id": 109,
            "value": "Notebook"
        },
        {
            "id": 10738,
            "value": "E-Book Reader"
        }
    ],
    "name": "System Type"
},
"status": "ok"

}

我想在下拉菜单中打印所有值,例如相机、GPS 导航。感谢您提供任何帮助。

4

3 回答 3

1

用于json_decode将 json 编码的字符串转换为 PHP 变量:

<?php
  $json = file_get_contents($your_url);

  $obj = json_decode($json);
  echo $obj->response->id; // prints 10 (based on your sample code)
?>
于 2012-08-21T13:39:56.780 回答
0

hridaynehu,使用您的 json 数组值填充选择框非常容易。按照下面的代码行。

<?php
     $url = 'http://service.proventustechnologies.com/api/json?username=demo&token=4ce26206-025d-11dc-8314-0800200c9a66&method=getattributevalues&dimensionId=10';
    $content = file_get_contents($url);
    $jsonArray = json_decode($content, true);?> 


<select name="json_populate"><?php 
    foreach($jsonArray->response->values as $jsonValue) { ?>
        <option value="<?php echo $jsonValue->id; ?>"><?php echo $jsonValue->value; ?></option>
    <?php } ?>
</select>

如果对您有帮助,请将其标记为答案。因为它也可以帮助其他人。

感谢和问候, Sanjoy Dey

于 2012-08-21T14:19:49.053 回答
0

我无法真正了解您的知识水平,但是您应该将数据加载到 html select 元素中,例如:

<?php
    echo '<select>';

    $jsonData = file_get_contents($url); 
    $jsonDataObject = json_decode($jsonData);

    foreach($jsonDataObject->response->values as $option){
        echo '<option value=' . $option->id . '>' . $option->value . '</option>';
    }

    echo '</select>';
?>
于 2012-08-21T13:44:25.097 回答