Прошу помощи по замене кода php на js
Здравствуйте знатоки. Прошу помощи ибо в js я нуб :cray: , максимум могу только операторами попользоваться, если что-то надо пишу на php. Знакомый попросил написать для его кланового сайта скрипт вывода информации о клане с api серверов игры, я помог, написал, но кто знал что на ucoz поддержка php только за бабло. Если не сложно помогите хотя бы разобраться (если на js вообще такое возможно) как подгрузить и декодировать json (как на php пример):
Код:
Код:
Полный код документа: облако mail.ru |
hostoptus,
как пример http://javascript.ru/forum/misc/5935...tml#post395017 newPost запрос json parse(data) обработка (в дата будет уже обьект) можно и без jquery https://learn.javascript.ru/ajax-xmlhttprequest и JSON.parse() |
Спасибо. Как загрузить, преобразовать в массив и считать разобрался.
function file_get_contents( url ) { // Reads entire file into a string // // + original by: Legaev Andrey // % note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain. var req = null; try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { req = new XMLHttpRequest(); } catch(e) {} } } if (req == null) throw new Error('XMLHttpRequest not supported'); req.open("GET", url, false); req.send(null); return req.responseText; } var mydata = file_get_contents('http://api.worldoftanks.ru/wgn/clans/info/?application_id=demo&clan_id=195497'); mydata = JSON.parse (mydata); document.write (mydata['data']['195497']['motto']); А как замутить на js такую же таблицу: <table class="tablesorter" cellspacing="1" style="width: 100%;"> <thead> <tr> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Имя</th> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Проведено боёв</th> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Личный рейтинг</th> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Состоит в клане</th> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Дней в клане</th> <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">Звание</th> </tr> </thead> <tbody> <?php foreach($new['data'][$clan_id]['members'] as $val){ $new_time = date('Y.m.d',$val['joined_at']); ?> <tr> <td style="font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"><a style="color: #185100; text-decoration: none;" href="http://worldoftanks.ru/community/accounts/<?php echo $val['account_id'] ?>-<?php echo $val['account_name'] ?>" target="_blank"><?php echo $val['account_name']; ?></a></td> <td style="color: #565354; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"> <?php $account_id = $val['account_id']; $new3 = file_get_contents("http://api.worldoftanks.ru/wot/account/info/?application_id=54b29552a32dd5f3ade861259e38a368&language=ru&account_id=".$account_id); $new3 = json_decode($new3,TRUE); echo $new3['data'][$account_id]['statistics']['all']['battles']; ?> </td> <td style="color: #7F3606; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"><?php echo $new3['data'][$account_id]['global_rating']; ?> </td> <td style="color: #000; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"><?php echo $new_time; ?></td> <td style="color: #5B4C00; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"><?php echo round((strtotime(date("Y-m-d H:i:s")) - $val['joined_at'])/(3600*24)); ?></td> <td style="color: #00137F; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;"><?php echo $val['role_i18n']; ?></td> </tr> <?php } ?> </tbody> </table> |
|
В чём косяк вроде правильно, должен выдать все id бойцов клана.
function file_get_contents( url ) { // Reads entire file into a string // // + original by: Legaev Andrey // % note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain. var req = null; try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { req = new XMLHttpRequest(); } catch(e) {} } } if (req == null) throw new Error('XMLHttpRequest not supported'); req.open("GET", url, false); req.send(null); return req.responseText; } var mydata = file_get_contents('http://api.worldoftanks.ru/wgn/clans/info/?application_id=demo&clan_id=195497'); mydata = JSON.parse (mydata); var val = mydata['data']['195497']['members']; val.forEach(function(item, i, val) { var dt = item; document.write( i + ": " + dt[account_id]); }); |
hostoptus,
странный у вас какой код без onreadystatechange у вас что var mydata мгновенно формируется или всётаки нужно время и никогда не используйте document.write (максимум при загрузке страницы) но никак после ответа сервера , это сотрёт страницу. https://learn.javascript.ru/document-write |
А не всё работает :) , забыл '' поставить.
document.write( i + ": " + dt['account_id']); А почему код странный? Я вообще не знаю js, всю жизнь писал на php, пишу этот код методом тыка по Вашим подсказкам, за что большое спасибо. А как по другому выводить данные на страницу кроме document.write?:) |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 19:58. |