Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Прошу помощи по замене кода php на js (https://javascript.ru/forum/misc/59693-proshu-pomoshhi-po-zamene-koda-php-na-js.html)

hostoptus 23.11.2015 00:39

Прошу помощи по замене кода php на js
 
Здравствуйте знатоки. Прошу помощи ибо в js я нуб :cray: , максимум могу только операторами попользоваться, если что-то надо пишу на 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

рони 23.11.2015 01:19

hostoptus,
как пример http://javascript.ru/forum/misc/5935...tml#post395017
newPost запрос json
parse(data) обработка (в дата будет уже обьект)
можно и без jquery
https://learn.javascript.ru/ajax-xmlhttprequest
и JSON.parse()

hostoptus 23.11.2015 11:59

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

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>

рони 23.11.2015 13:04

hostoptus,
http://javascript.ru/forum/misc/4886...ic-ciklom.html
http://javascript.ru/forum/misc/3556...tablicu-5.html
Особые ссылки для таблиц
https://learn.javascript.ru/modifying-document

hostoptus 23.11.2015 13:15

В чём косяк вроде правильно, должен выдать все 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]);
});

рони 23.11.2015 13:26

hostoptus,
странный у вас какой код без onreadystatechange
у вас что var mydata мгновенно формируется или всётаки нужно время и никогда не используйте document.write (максимум при загрузке страницы) но никак после ответа сервера , это сотрёт страницу.
https://learn.javascript.ru/document-write

hostoptus 23.11.2015 14:13

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

А почему код странный?
Я вообще не знаю js, всю жизнь писал на php, пишу этот код методом тыка по Вашим подсказкам, за что большое спасибо. А как по другому выводить данные на страницу кроме document.write?:)

рони 23.11.2015 14:33

Цитата:

Сообщение от hostoptus
А как по другому выводить данные

4 пост 4-я ссылка
Цитата:

Сообщение от hostoptus
А почему код странный?

потому что скрипт заблокирует браузер пока не придёт ответ -- лучше асинхронно , когда ответ придёт тогда и обработать результат, а не ждать ответа и гадать, чего комп завис.


Часовой пояс GMT +3, время: 19:58.