|
|
|
| Есть документ index.html. В нём есть строка указывающая на файл JS
<SCRIPT src="editor.js"></SCRIPT>
В этом файле(editor.js) в первой строке есть запись
var Content = "<b>C</b>ontent <b>E</b>xample";
Так вот. мне бы надо в эту переменную вписать текст из html файла .
На этом форуме есть такая же тема, только для 0.3 версии скрипта.
Вот ссылка на неё
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=21463&page=0
Пробовал внедрить PHP скрипты? которые там указаны, в файл editor.js. IE ругается.
Если вставлять PHP скрипт в файл index.html, то как передать итоговое значение в файл editor.js я не знаю. Помогите пожалуйста... | |
|
|
|
|
|
|
|
для: blackcement
(11.01.2009 в 19:45)
| | Можно указать РНР обрабатывать файлы с расширеним .js, можно обращаться к js как php файлу (то есть он выдает js сценарий)... Ну а в самом таком файле обрабатывать РНР сценарий и результат вставялть в JS. | |
|
|
|
|
|
|
|
для: sim5
(11.01.2009 в 20:21)
| | А нельзя-ли поподробней, а то я не очень разбираюсь в этом. | |
|
|
|
|
|
|
|
для: blackcement
(12.01.2009 в 01:29)
| | Много и подробно не буду, можете поискать в сети о более подробном, а сам же принцип не отличается чем-то радикальным от того, как если бы вы обрабатывали обычный текстовый файл и отдавали пользователю по запросу. Например, ваша динамическая страница содержит встроенный и подключаемые JS сценарии:
<html>
<head>
<!-- подключаемый сценарий
обращение к файлу РНР, который будет его формировать -->
<script type="text/javascript" src="script.php"></script>
<?php
//РНР-переменные и их обработка
//для дальнейшей передачи во встроенный JS-сценарий
$n = 15;
$k = 3;
$m = $n * $k;
$s = "All OK!";
?>
<!-- это встроенный JS-сценарий -->
<script type="text/javascript">
function showMath() {
var n = 5;
//передаем (встраиваем) РНР-переменные в JS
alert(<?php echo $m?> / n);
//обратите внимание на кавычки для строковой JS-переменной
//переменная РНР "встраивается" между ними
alert("<?php echo $s?>")
}
</script>
</head>
<body>
<!-- выполняем подключаемый сценарий JS -->
<input type="button" value="Show Var" onclick="showVar()"><br>
<!-- выполняем встроенный сценарий JS -->
<input type="button" value="Show Math" onclick="showMath()">
</body>
</html>
|
А это содержание РНР-сценария, который отдает браузеру подключаемый JS-сценарий:
<?php
$s1 = "Привет JS";
$s2 = " от РНР!";
$s3 = $s1 . $s2;
header("Content-type: text/javascript");
echo "var str = \"" .$s3. "\"
function showVar() {
alert(str)
}";
?>
|
Обратите внимание на передаваемый заголовок типа. Замечено, что без его пердачи IE может лажать иногда. Кроме того, что запрос на подключение JS-сценария может быть как обращение к РНР файлу, он помимо этого, естественно, может содержать и параметры, например:
<script type="text/javascript" src="script.php?a=14&b=25"></script>
принимая и обрабатывая которые, можно будет отдавать тот или иной JS-сценарий, встраивать те или иные переменные, или результат тех или иных вычислений, и т.п.. Естественно, если указать РНР обработку файлов с расширением .js, то подключение может выглядеть традиционно:
<script type="text/javascript" src="script.js?a=14&b=25"></script>
В свою очередь РНР-сценарий обрабатывающий и выдающий браузеру JS-сценарий, может использовать подключения файлов по условию, которые будут принимать переменные, то есть типа готовых JS-шаблонов для тех или иных ситуаций.
Подобным образом можно формировать и подключать не только JS-сценарии, но и файлы стилей - CSS. | |
|
|
|
|
|
|
|
для: blackcement
(11.01.2009 в 19:45)
| | файл editor.js назвать editor.php
var Content = "<b>C</b>ontent <b>E</b>xample"; меняем на
var Content = "<? echo "любой техт или код, который формируется рhр-скриптом.";?>";
|
уже столько раз это разжевывали... | |
|
|
|
|
|
|
|
для: elenaki
(12.01.2009 в 10:11)
| | Всё то что sim5 мне описал, я понял. Всё работает. Но куда он потерял файл editor.js ? Если делать так как говорит elenaki : "файл editor.js назвать editor.php" и вверу кода в этом файле вписать PHP код , о IE говорит, что во 2-й строке 1-симв ошибка(там где начинает объявляться первая php переменная). Простите пожалуйста за то что я такой глупый, но попробуйте пожалуйста мне ещё раз объяснить, очень прошу...
Вот у меня есть 3 файла
index.html
<html>
<body>
<SCRIPT src="editor.js"></SCRIPT>
</body>
</html>
|
editor.js
open.php
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$filename="index.html";
// otkrivaem
$file = fopen($filename, "r");
// chitaem
$buffer = fread($file, filesize($filename));
// zakrivaem
fclose($file);
?>
|
Мне необходимо чтобы при первом запуске скрипта(а он, как я понимаю, должен начать выполняться сразу же посте загрузки страницы) , переменной Content было присвоено значение переменной $buffer). Но так чтобы JS остался подключенным а не встроенным.
Как мне это сделать? | |
|
|
|
|
|
|
|
для: blackcement
(12.01.2009 в 19:39)
| | а <? в начале и ?> в конце вновь созданного (вернее, переименованного) файла editor.php вы вставили? у РНР есть свой синтаксис и если его не соблюдать, то будут сообщения об ошибках.
a то, что вы в последнем сообщении написали, вообще ни в какие ворота не лезет - запустить скрипт (подозреваю, что имеется ввиду open.php), в котором в переменную читается файл index.html, имеющий внутри подключение редактора java-script. т.е. по-вашему, переменной buffer, которая определяется и работает в файле editor.js, надо присвоить содержимое html-файла, в котором этот редактор (java-script! использующий переменную Content!) подключен как внешний файл.. бред
Пошла Машенька по грибы, да по ягоды. Вернулась ни с чем. Потому что надо ставить перед собой конкретные цели. | |
|
|
|
|
|
|
|
для: elenaki
(12.01.2009 в 20:04)
| | Извините, поторопился и код забыл изиенить. Я в файле open.php другое имя файла впишу page.html.
В итоге open php
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$filename="page.html";
// otkrivaem
$file = fopen($filename, "r");
// chitaem
$buffer = fread($file, filesize($filename));
// zakrivaem
fclose($file);
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(12.01.2009 в 20:04)
| | Так по Вашему файл editor.php должен выглядеть так?
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$filename="files/index.html";
// otkrivaem
$file = fopen($filename, "r");
// chitaem
$buffer = fread($file, filesize($filename));
// zakrivaem
fclose($file);
var Content = "<? echo $buffer ?>"; ;
?>
|
А подключить его в index.html так?
<script type="text/javascript" src="editor.php"></script>
|
| |
|
|
|
|
|
|
|
для: blackcement
(12.01.2009 в 20:31)
| | Так по Вашему файл editor.php должен выглядеть так?
так по логике. только там все-таки не index.html должен подгружаться...
и все остальное, что после контента вы, конечно, не забудете добавить...
кстати, последняя строка должна быть ВНЕ РНР, это уже java-script пошел:
надо ТАК -
?>
var Content = "<? echo $buffer ?>";
.... далее все то, что было в editor.js
|
да вам все равно с таким обилием открывающих и закрывающих тэгов рнр ошибку бы выдал... | |
|
|
|
|
|
|
|
для: elenaki
(12.01.2009 в 20:37)
| | Я так уже пробовал, ничего не получилось... Но попробовал снова и всё ок(наверно руки не оттуда ростут). Всё, программа приняла внедрённый php скрипт. Но возникла такая ошибка в файле editor.php :
Строка: 4
Символ: 28
Ошибка: Незавершённая строковая константа
Код: 0
У меня IE-7. У него отсчёт строк идёт с нуля или с единицы? А отсчёт символов? Обычно в программировании с нуля начинается(я конечно понимаю, что нового Вам этим не сказал) Как исправить эту ошибку? | |
|
|
|
|
|
|
|
для: blackcement
(13.01.2009 в 00:13)
| | это не в файле editor.php
Это в HTML.-коде страницы, сгенерированной скриптом editor.php
Соответственно строки нужно считать по этому коду.
Почему, интересно, так много людей считает, что стоит [любой] текст окружить кавычками, и его тут можно присваивать переменной? | |
|
|
|
|
|
|
|
для: blackcement
(13.01.2009 в 00:13)
| | надо избавиться от переносов строк, переменная Content должа содержать ОДНУ строку. и
экранировать спецсимволы. у JS тоже есть свои правила. | |
|
|
|
|
|
|
|
для: elenaki
(13.01.2009 в 10:46)
| | Я так понял спецсимволы это < ? и ?> . А перенос строк где? Так всё таки, какую строку я должен присвоить переменной Content ? Может тогда проще поспрашивать у людей JS выполняющий ту же функцию что и нами встраиваемый php ? Способ решения этой проблемы есть или нет? | |
|
|
|
|
|
|
|
для: blackcement
(13.01.2009 в 17:43)
| | проблема в том, что вы не знаете ни java-script ни РНР, но беретесь делать на них программы.
<? и ?> к JS никакого отношения не имеют. перенос строк надо убирать в файле, который вы читаете скриптом и заносите его содержимое в пременную Content.
вам проще будет нанять кого-то, кто знает и то и другое и сделает. проблем никаких нет. решение на поверхности. учите матчасть. | |
|
|
|
|
|
|
|
для: elenaki
(13.01.2009 в 18:58)
| | Я не берусь создавать программы PHP и JS . Мне всего лишь надо было сделать чтобы она открывала файлы, и мне посоветовали этот форум. И я знаю что <? и ?> к JS никакого отношения не имеют. Мы не правильно друг-друга поняли просто. А то что я понимаю плохо в PHP и JS я и сам знаю. Я понял что Вы имели ввиду. про перенос строки в редактируемом файле. Фиг с ним, я скрипт переделаю так чтобы он сохранял редактируемый файл в одну строку. Но как же быть с кавычками, знаками равно и прочей нечистью в редактируемом документе? Переменная Content не принимает строки с этими символами. И всё же, как быть с много строчными файлами? Судя по Вашей последней строчке, наш диалог наверное прервётся, но спасибо и на том. | |
|
|
|
|
|
|
|
|
для: blackcement
(13.01.2009 в 20:30)
| |
<?php
$var = file_get_contents(__FILE__);
$var = (mysql_escape_string($var));
echo "<"."script type=\"text/javascript\">
str = \"$var\";
alert(str);
<"."/script>";
?>
|
лексическое разбиение тегов script , конечно, лучше тоже описать функцией.
Да и разбиение на строки разумной длины не помешает. | |
|
|
|
|
|
|
|
для: Trianon
(13.01.2009 в 20:51)
| | Как это применить? Какая переменная и чем в итоге является?
<?php
$var = file_get_contents(__FILE__);
$var = (mysql_escape_string($var));
echo "<"."script type=\"text/javascript\">
str = \"$var\";
alert(str);
<"."/script>";
?>
|
А это куда?
| |
|
|
|
|
|
|
|
для: blackcement
(13.01.2009 в 21:20)
| | elenaki была права. Куда хотите туда и пихайте, ну как вам объяснить то, чего вы просто не понимаете?
Строковая переменная в JS должна быть прописана одной строкой, либо разбита на несколько соединеним ее с помощью +. Что касается функции указанной, то вы хоть не поленились зайти и почитать чего она делает? | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 21:26)
| | Ладно, кто сможет дописать недостающее??? И сколько это будет стоить? | |
|
|
|
|
|
|
|
для: blackcement
(11.01.2009 в 19:45)
| | Всё, я нашёл выход.. Даже не использовал php. Только JS! Получается эта программа будет работать даже на бесплатных хостингах... Ура! Ура! Ура! | |
|
|
|