|
|
|
|
-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. Не нужно писать типо "читай про фреймы и скрипты", я это и так пытаюсь делать, но либо я тупой, либо не там ищу. |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 19:13 | Re: Нужна помощь "тыжпрограммистов".3. буттон у тебя андефайнед - переменные нужно объявлять перед использованием!это и не переменная же. вот писал выше - прочти ты про DOM, а то получается, что обращаешься к сферическому коню в вакууме. ну откуда скрипту знать что это за button к которому ты хочешь innerHTML применить? |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 19:15 | Re: Нужна помощь "тыжпрограммистов".Спойлер <!DOCTYPE HTML> <html>
<head> <meta charset="utf-8"> <script> function loadGuns() {
var xhr = new XMLHttpRequest(); //новый объект функции
xhr.open("GET", "http://api.unit-online.ru/item?id=79", true); //запрос, метод - без параметров, ассинхронный
xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; // выполняем пока не статус не будет=4 (выполнение закончено)
if (xhr.status != 200) { // обработать ошибку alert(xhr.status + ": " + xhr.statusText); } else { // вывести результат window.document.getElementById ("dtext").innerHTML = xhr.responseText; // вывод }
}
xhr.send(); //отсылаем запрос
} </script> </head>
<body onload="loadGuns()"> <div id="dtext">abcd</div>
</body>
</html> вот так работает |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 20:17 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: надеюсь я не сильно задолбал своими тупняками) ибо вероятно запускаешь ты свой скрипт прямо с диска, а не с сервера,Вроде как с сервера 2. что это у тебя за путь такой до сервера? это FTP или P2P? какой протокол то?чтоо? файлик xxxx.php, редактирую в нотепад++, сохраняю, заливаю через FTP на хост в папку шаблона, вначале файла у меня еще Спойлер <?php /* Template Name: Мой шаблон страницы */ ?> И когда создаешь новую страницу там в качестве шаблона можно будет выбрать Мой шаблон страницы, т.е. получим страницу на которую никак не влияет основной шаблон. вот писал выше - прочти ты про DOMда я прочел, но не всегда сразу всё ясно, а иногда вообще думаешь что ясно, а самом деле оно не так=) Спойлер вот так работаеттеперь выглядит вот так http://petromi.com/get/eag3Ixa6e5f160ead111 спалил сайт, но надеюсь никто левый не догадается где там адрес=) |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 20:40 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: О боги, оно работает. xhr.open("GET", "http://api.unit-online.ru/item?id=79", true); отсюда кудато http:// пропало, поэтому 404. |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 20:40 | Re: Нужна помощь "тыжпрограммистов". |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 20:49 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: я выше писал, что браузер не позволит запускать с локального пути без сервера, но это касается только для метода open() с значением falce, т.е. для синхронного запроса, ну а асинхронный отрабатывает нормально, т.е. xhr.open("GET", "api.unit-online.ru/item?id=79", true); не станет ругаться на XMLHttpRequest
это мой косяк - я просто не могу помнить значение всех параметров в методах и заглушки в браузерах, защищающих дураков от кражи данных.
но! ты не внимательно читаешь ;) с чего ты взял, что я просто так пишу про твои ошибки, а потом выдаю тебе готовый рабочий пример? ну да, с DOM ты вероятно не до конца ещё разобрался, тут фишка в том, что нужно не только прочитать описание, но и попробовать. чтобы твой буттон работал, он или уже должен существовать, как тот DIV, в который мы что-то пишем, или ты должен объявить этот объект (создать его), а затем определить его место в документе - ни того, ни другого сделано не было, на что браузер вполне резонно выругался
ладно, эту ересь с ненужным буттоном я просто вырезал, но ошибку о которой писал выше и которую ты продолжаешь повторять я исправил только ради того, чтобы проверить, что код рабочий - в форуме оставил как есть...
ещё раз прочти про протокол ;) это FTP или P2P? какой протокол то? чтоо?
барузер умнее тебя, он умеет дописывать за тебя адрес, но в программировании такие фокусы не проходят! откуда ты берёшь описание оружия то? твой метод xhr.open("GET" к серверу на какой порт и по какому протоколу будет обращаться? если это HTTP, то порт можно и не указывать - по умолчанию ломанётся на 80й, если, это HTTP, но порт 8080 к примеру, то придётся указать, но всё равно ты должен сказать, что GET должен работать по HTTP, значит допиши в путь http://
про инструменты разработчика и консоль ошибок в браузере ты внял? там же за тебя 99% работы по выявлению ошибок выполняют - говорят где и что не нравится, даже часто дают описание и даже ЮРЛ для справки по методам |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 20:49 | Re: Нужна помощь "тыжпрограммистов".
15 Марта 2016 21:40, -TRickSTeR- [16]
:
|
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 20:52 | Re: Нужна помощь "тыжпрограммистов".форум прячет мой ник Da Boogie Woogie, а не форум =) это я спрятал |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 21:09 | Re: Нужна помощь "тыжпрограммистов".http://black-hearts.ru/sssss1/ как-то так
ну да, с DOM ты вероятно не до конца ещё разобрался, тут фишка в том, что нужно не только прочитать описание, но и попробовать. я бы с радостью=)
чтобы твой буттон работал, он или уже должен существовать, как тот DIV, в который мы что-то пишем, или ты должен объявить этот объект (создать его), а затем определить его место в документе - ни того, ни другого сделано не было, на что браузер вполне резонно выругался Сейчас буду гуглить как объявить этот объект.
значит допиши в путь http:// оно то написано, просто форум съедает.
про инструменты разработчика и консоль ошибок в браузере ты внял? Поставил я значит оперу, в настройках поставил галочку "показать панель разработчика", но нигде её не увидел, вот какую-то консоль нашел, http://petromi.com/get/eag2Rocbf191b0ead811 |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 21:10 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 21:13 | Re: Нужна помощь "тыжпрограммистов".но нигде её не увидел, вот какую-то консоль нашел,
это она и есть
сделай ошибку в скрипте, запятую забудь или ещё чего и в консоль вылезет описание ошибки и номер строки в документе. в твоём notepad++ ведь строки нумеруются? напомню, что нумерация начинается с нуля и с начала документа, а не с начала скрипта. |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 21:20 | Re: Нужна помощь "тыжпрограммистов".в твоём notepad++ ведь строки нумеруются? даже слова подсвечиваются разными цветами http://petromi.com/get/eag2K5d212fa10ead911 Спасибо, работает консоль http://petromi.com/get/eag2FR684dafc0eada11 В хроме такая же есть, а я то гадал зачем она нужна=) |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 21:33 | Re: Нужна помощь "тыжпрограммистов".ты там DOM`ом особо не увлекайся - так, для общего развития. ты пока несколько строк рабочих накодил, сейчас и не заметно, но нахер не надо скриптом плодить сущности, браузер значительно быстрее отрисует разметку, чем создаст её скриптом, а потом отрисует. я вообще не понял зачем там это буттон и почему его нельзя сразу написать в редакторе, а нужно создавать и воздуха. и про потерянный протокол - не стоит бездумно копипастить чужой код, читай вдумчиво и пиши по своему, ты наверное ещё не сталкивался с бородатыми приколами программистов, а ведь кроме бэкдора тебе могут и просто злую шутку подпихнуть, вот к примеру такой инетренет-мэм есть: http://www.linux.org.ru/forum/development/392747 читай коменты и вытирай слёзы |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 21:46 | Re: Нужна помощь "тыжпрограммистов".файлик xxxx.php, редактирую в нотепад++, сохраняю, заливаю через FTP на хост в папку шаблона, вначале файла у меня еще не проще ли поднять у себя сервер, пусть даже какую-нибудь готовую сборку типа Denver?
ну и нафига в шаблоны то запихавать? сделай вне WP каталог ./test туда несколько файликов для работы: test.html, test.php,... |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 22:02 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: linux.org.ru/forum/development/392747ЛОЛ, жесть я вообще не понял зачем там это буттонгде button? Спойлер <!DOCTYPE HTML> <html>
<head> <meta charset="utf-8"> <script> function loadGuns() {
var xhr = new XMLHttpRequest(); //новый объект функции
xhr.open("GET", "http://api.unit-online.ru/item?id=79", true); //запрос, метод - без параметров, ассинхронный
xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; // выполняем пока не статус не будет=4 (выполнение закончено)
if (xhr.status != 200) { // обработать ошибку alert(xhr.status + ": " + xhr.statusText); } else { // вывести результат window.document.getElementById ("dtext").innerHTML = xhr.responseText; // вывод }
}
xhr.send(); //отсылаем запрос
} </script> </head>
<body onload="loadGuns()"> <div id="dtext">abcd</div>
</body>
</html> Я не понимаю, о какой баттон речь. Или ты про старый код? ну и нафига в шаблоны то запихавать? сделай вне WP каталог ./test туда несколько файликов для работы: test.html, test.php,...http://black-hearts.ru/test/bd1.php тот же самый файл но в папке шаблона http://black-hearts.ru/bd/ |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 22:06 | Re: Нужна помощь "тыжпрограммистов".у тебя в старом коде, до того как он начал работать есть button и если его вернуть, то скрипт крашится на этом не объявленном буттоне.
ну и если нет разницы, зачем пропускать свой код через шаблонизатор вп? не боишься, что совпадут какие либо имена, вп их переварит, а ты будешь неделю искать ошибку? |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 22:12 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: Подожди-ка ну и если нет разницы,Всмысле?=) На первой написано "Соединение успешно установлено" На второй(которая в шаблоне) "Соединение успешно установлено". не боишься, что совпадут какие либо имена, вп их переварит, а ты будешь неделю искать ошибку?Спойлер <?php /* Template Name: Мой шаблон страницы */ ?> Это вроде как-то изолировать её должно, разве нет? |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 22:29 | Re: Нужна помощь "тыжпрограммистов".для -TRickSTeR-: На первой написано "Соединение успешно установлено"гавно твой гуглохром! опера сама сообразила, что с кодировкой что-то не так и исправила. а вообще гугли про .htaccess и объявление кодировки в которой сервер будет отдавать документы из каталога, в котором лежит этот .htaccess ну как то так: Спойлер AddDefaultCharset utf-8 Это вроде как-то изолировать её должно, разве нет?вовсе не обязательно, я без понятия чего там в последнее время накодили в этом монстре, кроме бэкдоров могли и перехват каких-то методов или переменных для своего фреймворка запихнуть |
| |
|
|
Da Boogie Woogie [14]
15 Марта 2016 22:34 | Re: Нужна помощь "тыжпрограммистов".На первой написано "Соединение успешно установлено" На второй(которая в шаблоне) "Соединение успешно установлено".
это наверное у тебя на хостинге по умолчанию сервер настроен отдавать документы в cp-1251, а в каталоге wp, в .htaccess объявлена кодировка utf-8
если ты не будешь всегда сам объявлять значения глобальных и локальных переменных, то придётся мириться с тем, что за тебя решил админ сервера - времени на костыли потратишь уйму! |
| |
|
|
-TRickSTeR- [16]
15 Марта 2016 23:27 | Re: Нужна помощь "тыжпрограммистов".для Da Boogie Woogie: вот у меня новая версия файлика Спойлер <?php /* Template Name: Мой шаблон страницы */ ?>
<!DOCTYPE HTML> <html>
<head> <meta charset="utf-8"> <script> function loadGuns() {
var xhr = new XMLHttpRequest(); //новый объект функции
xhr.open("GET", "http://api.unit-online.ru/item?id=79", true); //запрос, метод - без параметров, ассинхронный
xhr.onreadystatechange = function() { if (xhr.readyState != 4) return; // выполняем пока не статус не будет=4 (выполнение закончено)
if (xhr.status != 200) { // обработать ошибку alert(xhr.status + ": " + xhr.statusText); } else { // вывести результат window.document.getElementById ("dtext").innerHTML = xhr.responseText; // вывод }
}
xhr.send(); //отсылаем запрос
} </script> </head>
<body onload="loadGuns()"> <div id="dtext">abcd</div>
</body>
</html> <?php // Соединяемся, выбираем базу данных $link = mysql_connect('localhost', 'ууу', 'ххх') or die('Не удалось соединиться: ' . mysql_error()); echo 'Соединение успешно установлено'; mysql_select_db('aleksae4_bd1') or die('Не удалось выбрать базу данных');
// Выполняем SQL-запрос $query = 'SELECT * FROM guns'; $result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
// Выводим результаты в html echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; } echo "</table>\n";
// Освобождаем память от результата mysql_free_result($result);
// Закрываем соединение mysql_close($link); ?> До </html> всё без изменений. Дальше подключаемся к уже созданной БД(и одна таблица там тоже есть). Теперь перед // Выполняем SQL-запрос нужно как-то получить то что нам вернул api запрос. Можно ли напрямую обратится к "dtext"? Виден/доступен ли он из этой части программы? Теперь оттуда нужно получить все записи ключ:значение (или не нужно?). |
| |
|
|
|