2015-07-31 3 views
1

Я не могу понять, как создать определенное количество ящиков для моего сайта из данных, полученных из json-файла. Поэтому я использую переменную «amount» в json-файле, и я хочу использовать ее для определения количества окон сетки, которые у меня есть. Я также хочу использовать «id» в коде, чтобы заменить «CLASS ID» на изображении. Я в первый раз напортачил, и я имел в виду идентификатор класса;Создание html из json-данных в php

HTML GRIDS

 <div class="col-lg-2 col-sm-3 col-xs-4"> 
     <a href="#"> 
     <img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/"CLASS ID"/150fx125f" class="thumbnail img-responsive"> 
     </a> 
    </div> 

JSON FILE

{ 
    "success":true, 
    "rgInventory":{ 
    "1984642382":{ 
     "id":"1984642382", 
     "classid":"469444591", 
     "instanceid":"188530139", 
     "amount":"1", 
     "pos":38 
    }, 
    "1984642357":{ 
     "id":"1984642357", 
     "classid":"469452066", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":39 
    }, 
    "1983911296":{ 
     "id":"1983911296", 
     "classid":"310777476", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":40 
    }, 
    "1947454623":{ 
     "id":"1947454623", 
     "classid":"360467265", 
     "instanceid":"188531151", 
     "amount":"1", 
     "pos":41 
    }, 
    "1947053285":{ 
     "id":"1947053285", 
     "classid":"360460096", 
     "instanceid":"188530139", 
     "amount":"1", 
     "pos":42 
    }, 
    "1908333346":{ 
     "id":"1908333346", 
     "classid":"310777578", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":43 
    }, 
    "1900749367":{ 
     "id":"1900749367", 
     "classid":"666947032", 
     "instanceid":"188530139", 
     "amount":"1", 
     "pos":44 
    }, 
    "1900365118":{ 
     "id":"1900365118", 
     "classid":"310777271", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":45 
    }, 
    "1900266239":{ 
     "id":"1900266239", 
     "classid":"310777215", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":46 
    }, 
    "1900266235":{ 
     "id":"1900266235", 
     "classid":"310779180", 
     "instanceid":"0", 
     "amount":"1", 
     "pos":47 
    }, 
     }, 
     "rgCurrency":[ ], 
     "rgDescriptions":{ }, 
     "more":false, 
     "more_start":false 
    } 
+0

Можем ли мы ответ данных JSON с несколькими данными? Было бы проще, как закодировать. –

+0

@ DishaV. Я отредактировал его, но я не знаю, правильно ли он сформировал оригинал, чтобы долго вставлять его. – bbousq

ответ

1

Я не уверен, что это то, что вы хотите на выходе, но я попробовал следующее и скажите мне, это то, что вы ожидали? Здесь test.json - это json-файл с заданным json-ответом.

<?php 
$test = json_decode(file_get_contents('test.json')); 
foreach ($test->rgInventory as $index=>$items) { 
    //echo $index; // will get index 
    ?> 
    <div class="col-lg-2 col-sm-3 col-xs-4"> 
     <a href="#"> 
      <img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/<?= $items->id ?>/150fx125f" class="thumbnail img-responsive"> 
     </a> 
    </div> 
<?php 
} ?> 
+0

Спасибо! также у меня есть другой вопрос, в моем json-файле есть значения, и они обычно всегда будут разными, есть ли способ получить эти ценности, не зная, что это такое? чтобы сделать его автоматизированным. – bbousq

+0

Если вы говорите о значении «1984642382» и т. Д., Вы можете использовать его с помощью ключа $. Проверьте мои изменения. Если это не то, что вы хотите знать, пожалуйста, сделайте комментарий здесь. –

+0

Я напортачил, мне нужен идентификатор класса вместо id – bbousq

0

Перво-наперво, есть ошибка синтаксиса в вас JSON данных по адресу:

"1900266235":{ 
    "id":"1900266235", 
    "classid":"310779180", 
    "instanceid":"0", 
    "amount":"1", 
    "pos":47 
}, 

Правильно:

"1900266235":{ 
    "id":"1900266235", 
    "classid":"310779180", 
    "instanceid":"0", 
    "amount":"1", 
    "pos":47 
} 

Чтобы напечатать необходимое количество Image-коробки вы можете конвертировать ваши данные JSON в массив PHP и напечатайте HTML-код. Я подготовил пример, в котором данные JSON считываются с диска.

<?php 

/** 
* Create Image Box 
* 
* @param $imageId int imageId 
* @return string ImageBOX HTML Code 
*/ 
function printImageBox($imageID) 
{ 
    $imageBox = ''; 

    $imageBox .= '<div class="col-lg-2 col-sm-3 col-xs-4">'; 
    $imageBox .= '<a href="#">'; 
    $imageBox .= sprintf('<img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/%d/150fx125f" class="thumbnail img-responsive">', $imageID); 
    $imageBox .= '</a>'; 
    $imageBox .= '</div>'; 

    return $imageBox; 
} 

// read JSON File from disk 
$data = file_get_contents('data.json'); 
$data = json_decode($data, true); 
$inventory = $data["rgInventory"]; 

// foreach entry print an box.. 
foreach ($data["rgInventory"] as $key => $value) { 
    echo printImageBox($key); 
} 

Результаты в:

enter image description here

0

Используйте этот код для вашей проблемы

<?php 
    $decode_data=json_decode($json_data,1); 
    foreach($decode_data as $k=>$v){ 
     $val=$v; 
     if(is_array($v)){ 
      foreach($v as $a=>$b){ 
        echo ' 
      <div class="col-lg-2 col-sm-3 col-xs-4"> 
       <a href="#"> 
       <img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/<b>'.$a.'</b>/150fx125f" class="thumbnail img-responsive"> 
       </a> 
      </div>'; 
      } 
     } 
    } 
Смежные вопросы