Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2015, 00:39
Новичок на форуме
Отправить личное сообщение для hostoptus Посмотреть профиль Найти все сообщения от hostoptus
 
Регистрация: 22.11.2015
Сообщений: 4

Прошу помощи по замене кода php на js
Здравствуйте знатоки. Прошу помощи ибо в js я нуб , максимум могу только операторами попользоваться, если что-то надо пишу на php. Знакомый попросил написать для его кланового сайта скрипт вывода информации о клане с api серверов игры, я помог, написал, но кто знал что на ucoz поддержка php только за бабло. Если не сложно помогите хотя бы разобраться (если на js вообще такое возможно) как подгрузить и декодировать json (как на php пример):

Код:
$new = file_get_contents("http://api.worldoftanks.ru/wgn/clans/info/?application_id=demo&clan_id=195497");
$new = json_decode($new,TRUE);
и как потом считать значения (пример php):

Код:
<?php echo $new['data'][$clan_id]['motto'] ?>
до остального допру методом тыка.

Полный код документа:

облако mail.ru

Последний раз редактировалось hostoptus, 23.11.2015 в 00:46. Причина: накосячил
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2015, 01:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

hostoptus,
как пример Смещение цикла, обход массива исключая дубли, полный ликбез
newPost запрос json
parse(data) обработка (в дата будет уже обьект)
можно и без jquery
https://learn.javascript.ru/ajax-xmlhttprequest
и JSON.parse()
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2015, 11:59
Новичок на форуме
Отправить личное сообщение для hostoptus Посмотреть профиль Найти все сообщения от hostoptus
 
Регистрация: 22.11.2015
Сообщений: 4

Спасибо. Как загрузить, преобразовать в массив и считать разобрался.

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;">&#1048;&#1084;&#1103;</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;">&#1057;&#1086;&#1089;&#1090;&#1086;&#1080;&#1090; &#1074; &#1082;&#1083;&#1072;&#1085;&#1077;</th>
                        <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">&#1044;&#1085;&#1077;&#1081; &#1074; &#1082;&#1083;&#1072;&#1085;&#1077;</th>
                        <th style="color: #cc9900; font-family: Arial; font-size: 12px; font-weight: bold; text-align: center;">&#1047;&#1074;&#1072;&#1085;&#1080;&#1077;</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>
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2015, 13:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

hostoptus,
Создание таблиц циклом
сделать таблицу.
Особые ссылки для таблиц
https://learn.javascript.ru/modifying-document
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2015, 13:15
Новичок на форуме
Отправить личное сообщение для hostoptus Посмотреть профиль Найти все сообщения от hostoptus
 
Регистрация: 22.11.2015
Сообщений: 4

В чём косяк вроде правильно, должен выдать все 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]);
});
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2015, 13:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

hostoptus,
странный у вас какой код без onreadystatechange
у вас что var mydata мгновенно формируется или всётаки нужно время и никогда не используйте document.write (максимум при загрузке страницы) но никак после ответа сервера , это сотрёт страницу.
https://learn.javascript.ru/document-write
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2015, 14:13
Новичок на форуме
Отправить личное сообщение для hostoptus Посмотреть профиль Найти все сообщения от hostoptus
 
Регистрация: 22.11.2015
Сообщений: 4

А не всё работает , забыл '' поставить.
document.write( i + ": " + dt['account_id']);

А почему код странный?
Я вообще не знаю js, всю жизнь писал на php, пишу этот код методом тыка по Вашим подсказкам, за что большое спасибо. А как по другому выводить данные на страницу кроме document.write?
Ответить с цитированием
  #8 (permalink)  
Старый 23.11.2015, 14:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от hostoptus
А как по другому выводить данные
4 пост 4-я ссылка
Сообщение от hostoptus
А почему код странный?
потому что скрипт заблокирует браузер пока не придёт ответ -- лучше асинхронно , когда ответ придёт тогда и обработать результат, а не ждать ответа и гадать, чего комп завис.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
serialize-unserialize js php прошу помощи mrmammoth Общие вопросы Javascript 5 19.03.2014 16:16
str_replace в JS и PHP неправильно работает? Маэстро Общие вопросы Javascript 3 17.03.2014 14:36
Передача переменной из JS в PHP и обратно Gregorian Общие вопросы Javascript 5 11.09.2012 16:12
Добавление кода js в js файл BEUJ Общие вопросы Javascript 13 12.01.2012 21:35
Загрузка дополнительного js кода с сервера Anonymous2008 Общие вопросы Javascript 5 20.11.2008 12:33