|
|
|
|
-TRickSTeR- [16]
14 Марта 2016 20:08 | Нужна помощь "тыжпрограммистов".Допустим у меня есть сайт. На одной из страниц у меня подключен скрипт. jQuery.ajax({ url: "http://api.unit-online.ru/items?type=%D0%BE%D1%80%D1%83%D0%B6%D0%B8%D0%B5", dataType: "jsonp" }).done(function (result) { jQuery("#nonlinecount1").html(result.count); бла бла бла a = jQuery("#nonlinePPS").html(); jQuery("#nonlinePPS").html(a+ "" + result.items.name+" ["+result.items[i].level+"]"+"<a href=\"http://unit-online.ru/item?id="+result.items[i].id+"\"target=\"_blank\"> <img src=http://блаблабла/ico_info.gif></a><br>"); В левой части страницы мы видим вот это http://petromi.com/get/eah4F6960de220ea0011 Как видно из кода, при нажатии на значок информации мы попадаем на http://unit-online.ru/item?id= +id ствола, например http://unit-online.ru/item?id=79 Теперь допустим что в правой части страницы у меня есть фрейм, в котором лежит: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Инфомация о предмете</title> <style> #content { бла } .item-info { бла } .common-params { бла } .common-params div, .spec-params div { бла } .item-name { бла } .item-img { бла } </style> </head> <body> <script src="http://www.бла/js/jquery.js"></script> <table> бла бла </table> <script> $.ajax({ url: "http://api.unit-online.ru/item", dataType: "jsonp", data: { id: 771 } }).done(function (data) { if (data.status == "ok") { var item = data.item; var info = $("#content .item-info"); info.find(".item-name").text(item.name); info.find(".item-img").html('<img alt="" src="' + item.image + '">'); var params = $('<div>'); for (var i = 0; i < item.params.length; ++i) { if (item.params[i].name.lastIndexOf("Клетки", 0) === 0) { info.find(".spec-params").append( $('<div>').text(item.params[i].name + ": " + item.params[i].value) ).toggle(); } else { params.append($('<table>').append( $('<tr>').append( $('<td>').text(item.params[i].name)).append( $('<td class="value">').text(item.params[i].value)) ) ); } } info.find(".common-params").append(params); $("#content .progress").toggle(); info.toggle(); } else if (data.status == "fail") { $("#content").text("Отсутсвует информация о предмете с id = 771."); } }); </script> </body> </html> В этом фрейме мы видим что-то похожее на http://petromi.com/get/eah4kC71eeb920ea0311 , только в других цветах/шрифтах. Собственно, в чём мне нужна помощь? Хотелось бы чтобы ([i]при нажатии на значок информации мы попадаем на http://unit-online.ru/item?id= +id ствола, например http://unit-online.ru/item?id=79), а нужно чтобы при нажатии id предмета передавался в скрипт во фрейме $.ajax({ url: "http://api.unit-online.ru/item", dataType: "jsonp", data: { id: 771 } }).done(function (data) {. Если это вообще возможно, у меня не хватает знаний чтобы понять как это сделать. Если вы знаете как это сделать/ как сделать иначе, но с похожим эффектом, то пожалуйста напишите код/ дайте ссылку на литературу по данному вопросу/ на видео-урок. P.S. Не нужно писать типо "читай про фреймы и скрипты", я это и так пытаюсь делать, но либо я тупой, либо не там ищу. |
| |
|
|
-TRickSTeR- [16]
18 Марта 2016 00:45 | Re: Нужна помощь "тыжпрограммистов".1) Узнать что такое JSON и зачем оно надо - complete 2) Установить Denwer - жду пока с оф. сайта пришлют ссылку на почту. Долго чо-то не приходит. Да, в папке "спам" смотрел. 3) Суперпользователи и права в UNIX-системах - complete 4) Пытался понять что же это такое многомерный массив с типом "stdClass Object", буду пытаться дальше 5) Узнать разницу между echo и print_r() - complete 6) gettype() в первом варианте функции возвращает "string", после работы json_decode() возвращает "object".
Думаю что наша "строка" на самом деле выглядит примерно вот так http://petromi.com/get/eadnot504eff50ec8811 http://petromi.com/get/eadnnW62aed300ec8811 Это чтобы было наглядно видно что на каком "уровне" лежит. А добраться к примеру до типа оружия можно теоритически вот так echo $type->item[0]->subtype; Но это не точно, всё завтра, а то через 6 часов вставать на пары. |
| |
|
|
-TRickSTeR- [16]
18 Марта 2016 00:49 | Re: Нужна помощь "тыжпрограммистов".для NightAssasin: Вот ты о курсовых заговорил, прям как-будто знал что я сегодня курсач защитил Вдруг кому-то интересно что же там такое http://my-files.ru/73xahl |
| |
|
|
-TRickSTeR- [16]
18 Марта 2016 00:51 | Re: Нужна помощь "тыжпрограммистов".*теоретически |
| |
|
|
Da Boogie Woogie [14]
18 Марта 2016 01:00 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: 2. не ими моск, ставь XAMPP денвер разве не умер? чего то там версии софта староваты, не?
4. ты же посмотрел на вывод print_r(get_file("api.unit-online.ru/item?id=".$id)); там же массив в массиве ;)
6. вот он и говорит тебе, что это не array, а нечто более сложное - см. п.4. |
| |
|
|
Da Boogie Woogie [14]
18 Марта 2016 01:11 | Re: Нужна помощь "тыжпрограммистов".6) gettype() ты попробовал, а почему не захотел попробовать другие типы получать? мне казалось, что это интересно я бы сначала потрогал settype() и попробовал сложить числа со строкой, например так: $a = "5"; $b = false; settype($b, "int"); echo $a.$b;ну и в других забавных вариантах |
| |
|
|
boromotor [17]
18 Марта 2016 01:25 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: 2) openserver |
| |
|
|
Da Boogie Woogie [14]
18 Марта 2016 01:45 | Re: Нужна помощь "тыжпрограммистов".
18 Марта 2016 02:25, boromotor [17]
:
для -TRickSTeR-: 2) openserver
убейся нахер об стену! удивлён, что они в этот опенсервер ещё VK-музыку не впендюрили |
| |
|
|
-TRickSTeR- [16]
18 Марта 2016 17:18 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: Если тут - прими запрос в скайпе, пожалуйста. |
| |
|
|
-TRickSTeR- [16]
18 Марта 2016 18:05 | Re: Нужна помощь "тыжпрограммистов".Не могу найти как преобразовать object в string например, это вообще возможно?) |
| |
|
|
Da Boogie Woogie [14]
18 Марта 2016 18:19 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: всё возможно. только в данном случае тебе придётся разбирать эти массивы |
| |
|
|
-TRickSTeR- [16]
21 Марта 2016 13:09 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: у нас там лишние эти [0],[1] - нам эта информация только мешает. значит надо простёшим циклом брать парамс разбирать и укладывать. всё в рамках одного цикла, по ресурсозатратам, это будет очень легко и быстро, а главное красиво и ооочень удобно для дальнейшей работыСпойлер <?php error_reporting(E_ALL);
$id = "1130"; function get_file($url) { $rf = file_get_contents($url); return json_decode($rf); } $object_massiv=get_file("http://api.unit-online.ru/item?id=".$id);
function sozdat_massiv_parametrov($object_massiv) { $b = array (); for ($n=2; $n<count($object_massiv->item->params); ++$n) { $m=serialize($object_massiv->item->params[n]); array_push ( $b, $m); } $k="NULL"; array_pad ( $b, 19, $k); return $b; }
$massiv=sozdat_massiv_parametrov($object_massiv); print_r($massiv); ?> Выводит: Array ( [0] => N; [1] => N; [2] => N; [3] => N; [4] => N; [5] => N; [6] => N; [7] => N; [8] => N; [9] => N; [10] => N; [11] => N; [12] => N; [13] => N; [14] => N; [15] => N; [16] => N; [17] => N; ) |
| |
|
|
Da Boogie Woogie [14]
22 Марта 2016 01:22 | Re: Нужна помощь "тыжпрограммистов".уродливый код. а потому по определению ничего вменяемого из него не получится.
переделывай. |
| |
|
|
-TRickSTeR- [16]
22 Марта 2016 17:38 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: переделываю, то же самое выходит. А что конкретно не так? |
| |
|
|
Da Boogie Woogie [14]
22 Марта 2016 20:08 | Re: Нужна помощь "тыжпрограммистов".попробуй перестать отвлекаться на ерунду и действовать согласно плана работ.
по плану, после того как ты научился забирать информацию с сервера, ты должен уложить в БД список всех стволов, потом видимо следует хорошенько подумать какая будет структура таблицы в БД, как она будет индексироваться, а уже потом по списку будешь забирать отдельно информацию по каждому стволу и укладывать в соответствующую строку БД. |
| |
|
|
-TRickSTeR- [16]
22 Марта 2016 21:47 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: ты должен уложить в БД список всех стволов,Я так понимаю это таблица с двумя полями: id name так? Спойлер <?php error_reporting(E_ALL);
$link = mysql_connect('localhost', 'aleksae4_bd1', '4{{7XZr@') or die('Не удалось соединиться: ' . mysql_error()); echo 'Соединение успешно установлено'; mysql_select_db('aleksae4_bd1') or die('Не удалось выбрать базу данных');
function get_file($url) { $rf = file_get_contents($url); return json_decode($rf); } $a=get_file("http://api.unit-online.ru/items?type=оружие"); if ($a->status=="ok") { $kol=$a->count; for ($nom=0; $nom<$kol-1; $nom++) { $mas1=serialize($a->items[$kol]->id); $mas2=serialize($a->items[$kol]->name); $insertvtable = mysql_query ("INSERT INTO Weapon ( id, name) VALUES ('$mas1', '$mas2')"); mysql_close($link); } } ?> |
| |
|
|
Da Boogie Woogie [14]
22 Марта 2016 21:55 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: ну для начала видимо так. но структуру таблицы тебе придётся тщательно продумать до того, как ты начнёшь укладывать в неё другие данные
ну и механизм подключения к БД тоже хорошенько продумать - ты же будешь постоянно к этой БД обращаться, так что имеет смысл уложить это в функцию, а то и в отдельный файл |
| |
|
|
-TRickSTeR- [16]
22 Марта 2016 22:05 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: Походу меня осенило, у нас в принципе всего одна таблица, так? В ней ну примерно 25 полей, первым делом мы заполняем только id и name, потом мы берем из нее каждый id и дописываем соответствующие параметры в оставшиеся поля, так? |
| |
|
|
Da Boogie Woogie [14]
22 Марта 2016 22:36 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: ты раз за разом игнорируешь то, что я пишу, а потом заявляешь, что тебя осенило |
| |
|
|
OXXXY [11]
22 Марта 2016 23:10 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: я не игнорирую=) просто я тупой |
| |
|
|
-TRickSTeR- [16]
23 Марта 2016 19:31 | Re: Нужна помощь "тыжпрограммистов".залил я значит в ту же папку файл connection.php Спойлер <?php $host = 'localhost'; $user = '*тут логин*'; $password = '*тут пароль*'; $database = '*тут название бд*'; ?> пишу Спойлер require_once 'connection.php'; $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка подключения " . mysqli_error($link)); echo 'Соединение успешно установлено';
Пишет "Соединение успешно установлено", но в базу скрипт ничего не заносит. Ну думаю проверю в чем прикол Спойлер require_once 'connection.php'; $link = mysqli_connect($host, $user, $password) or die("Ошибка подключения " . mysqli_error($link)); echo 'Соединение успешно установлено'; mysql_select_db('*тут имя бд*') or die('Не удалось выбрать базу данных');
Выдает "Соединение успешно установленоНе удалось выбрать базу данных" Название бд перепроверил 100500 раз и руками писал и копировал, ничего не помогает. По старинке же всё нормально работает. |
| |
|
|
|