22.08.2015, 18:25
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от daslex
|
Проблема в том, что если не преобразовывать HTML код в HTML сущности, то при передаче текстовых данных в массив возникают непонятные мне проблемы.
|
В какой массив и зачем? Речь ведь идет о странице, код которой представлен, и которую нужно всего лишь навсего вывести в новом окне.
|
|
22.08.2015, 18:26
|
Кандидат Javascript-наук
|
|
Регистрация: 17.04.2015
Сообщений: 125
|
|
Много файлов, в каждом файле свой код. Окно открывается одно. Т.к. файлов много, то удобно записывать их в массив, а потом передавать в открываемое окно.
В результате, в зависимости от выбранного пользователем <div> элемента, в открытое окно должен вписаться соответствующий этому <div> текст, который в свою очередь и хранится на сервере.
Массив или переменная не одно ли и то же?. Массив всего лишь хранит много переменных, но его переменная, это обычная переменная, ничем от других переменных не отличающаяся.
Последний раз редактировалось daslex, 22.08.2015 в 18:29.
|
|
22.08.2015, 18:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Нужно отделять мух от котлет, иначе у вас слишком много бесполезной работы.
1) Кто хозяин этих описаний?
2) Ваш сайт динамический или статический?
|
|
22.08.2015, 18:36
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
а загрузить аяксом нужную страницу не пробовали?
|
|
22.08.2015, 18:40
|
Кандидат Javascript-наук
|
|
Регистрация: 17.04.2015
Сообщений: 125
|
|
Задача моя. Ставил себе её я сам. Решение мне действительно нужно.
В Javascript я ничего не знаю. Я в этом признался честно и повторяю сейчас.
Кусочек с php писал я. C экранированием и html сущностями мне подсказали.
javascript под открытия окна писал я. Искал как делать много, долго и упорно. Настоящего автора сказать не могу. Я не знаю кто это был, я использовал его труд. То же самое для клика по <div>, автора сказать не могу, но выискал я своими силами.
HTML код написан мной.
Подход к решению выбран мной с некоторыми корректировками другими людьми.
__________________
И кто здесь автор описаний? Вроде не я, а вроде и я с некоторой помощью других людей.
__________________
|
|
22.08.2015, 18:42
|
Кандидат Javascript-наук
|
|
Регистрация: 17.04.2015
Сообщений: 125
|
|
Я не знаю Аякса. Если в javascript я хотя бы document.write знаю, то там не знаю ничего. И скорее всего там будет эта же проблема, что сейчас стоит передо мной.
|
|
22.08.2015, 18:55
|
Кандидат Javascript-наук
|
|
Регистрация: 17.04.2015
Сообщений: 125
|
|
Сейчас я быстро отвечать не могу, я отхожу от компа. Вечером вернусь. Часов в 23.00 по Москве...
И все-таки очень надеюсь, что решение найти поможете. Как-никак, отвечаете мне. Но надеюсь, что допросы прекратятся, если кому нужно слишком много деталей, готов показать своими глазами, что мне нужно, что у меня есть и что у меня не получается (с помощью teamviewer). Это займет намного меньше времени, чем писать ответы на все тонкости, колкости и проверку на "халявщика".
сейчас отхожу от компа.
|
|
22.08.2015, 19:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от daslex
|
Но надеюсь, что допросы прекратятся, если кому нужно слишком много деталей, готов показать своими глазами
|
А кто вас допрашивает? Если хозяин описаний вы, если сайт динамический, то почему описания кода хранятся не в базе (а уж там и как раз и место), а свалены а какие-то файлы, к тому же так бездумно отдаваемые клиенту?
Если же все будет на севере организовано надлежащим образом, то запрос каждого описания, это полученное из базы через htmlspecialchars(), и вставленное в один и тот же шаблон html-кода. А какое описание запрашивается, а значит и вставляется, определяется параметром запроса в url для window.open(), а не получается из какого-то массива, который вообще не нужен.
Впрочем как хотите, но что-то советовать не зная всего трудно, и если это для вас "допрос"... ну значит майтесь с массивами и прочим.
|
|
22.08.2015, 21:17
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
Когда-прийдете - попробуйте это
<script type='text/javascript' >
function MyFunc(url){
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status != 200) {
alert('Ошибка: ' + xhr.status + '|' + xhr.statusText);
} else {
var NewWin=window.open('','','...');
NewWin.document.write(xhr.responseText); // xhr.responseText - переменная в которой хранится нужный текст
}
}
}
// вызывать функцию так - MyFunc('MyFiles/MyFile.php')
</script>
<div id="id2" >
<b>Кликни меня</b><br />
<script type='text/javascript'>
document.getElementById("id2").onclick = MyFunc("<?php echo $url ?>"); // $url - нужный адрес, например у вас - "MyFiles/MyFile.php"
</script>
</div>
|
|
22.08.2015, 21:54
|
Кандидат Javascript-наук
|
|
Регистрация: 17.04.2015
Сообщений: 125
|
|
KosBeg,
Так ничего вообще не происходит. Даже окно не открывается.
laimas,
С базой, конечно, должно быть удобнее решать, но я не умею работать с бд в принципе. И я не знаю насколько удобно потом вносить правки во все файлы максимально быстро. Да и само обращение к файлам работает быстрее чем обращение к бд.
Так-то если надо отдельный файл попраивть или массово что-то там дописать/изменить, то я могу себе что-то свое написать несложное. Из-за 1 правки импортировать бд в пару десятков МБ) Немного забавно, но неудобно. Мой интернет не безлимитный, а безлимитный интернет у меня по географическому положению в принципе отсутствует и еще лет 200 не будет.
Я в принципе не против решения с бд, но как я сказал, я не умею с ней работать программно. Сайт на Wordpress/ Что-то там портить в бд мне не хочется совсем.
Последний раз редактировалось daslex, 22.08.2015 в 22:05.
|
|
|
|