|
|
|
| Всем Добрый Вечер.
Необходима ваша помощь в нахождении метода передачи между двумя языками.
Как всем известно эти языки работают по разным стороннам, только прошу не говорить, что это не реально, метод есть 100%, его нужно только найти.
Итак, имеется такой код, файл enter.php:
<script>
// <!--
count = 3; // Переменную name необходимо передать в PHP
// -->
</script>
<script type="text/javascript" src="http://test/show.js">
</script>
|
Файл show.js имеет код:
document.write('
<?php
// необходимо вытащаить переменную count из JS в PHP
$i = 0;
while($count_js>$i) echo 'Hello World!<br>';
?>');
|
Т.е. по идеи должно вывести Hello World! три раза если запустить файл enter.php.
Я так понимаю, это можно решить через Ajax?
Для примера, можете посмотреть коды от Бегуна, Директа и тд. у них эта система работает. Только мне это не для рекламного сервиса необходимо. Спасибо за ответы.
П.С. уже создавал я когда-то подобную тему, но что-то не так пошло... сильно не ругайте. | |
|
|
|
|
|
|
|
для: tokmak
(13.01.2009 в 22:37)
| | Вы сами то поняли то, чего написали? Вы тоже не обижайтесь но это бред полнейший. Метод document.write запишет на страницу клиента код РНР, а "Как всем известно эти языки работают по разным стороннам"... И чего вы ожидаете на стороне клинета от РНР? | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 22:42)
| | Вообще, мне необходимо, чтобы на стороне клиента выводилась определенная информация, которая поступает из БД. Через примерный код, т.е. стоит число 3, должна выйти три раза определенная инфа из БД, а если в JS-коде сменят на 4, то значит выводим четыре раза и тд. | |
|
|
|
|
|
|
|
для: tokmak
(13.01.2009 в 22:49)
| | Значит в запросе к странице и пердавайте параметр, который и будет опредлать число выводимых элентов, при чем это не обязательно JS может быть, достаточно делать запрос формой.
Если вам это нужно менять динамически, то это AJAX, но ни о каком присваивании значений JS в РНР и в этом случае речи не идет - это значение некой переменной. | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 22:51)
| | в каком запросе передавать параметр? И мне необходимо именно через JS работать.
Если разместить на разных сайтах этот блок-код, то на каждом сайте должна появиться определенная информация, которая генерируется на сервере(PHP,Mysql) и генерация зависит от этого блок-кода, который находится на стороне клиента(посетителя сайта).
Через формы, мне не подходит этот вариант, и через $_GET тоже(( | |
|
|
|
|
|
|
|
для: tokmak
(13.01.2009 в 22:57)
| | Что значит именно в JS? В любом случае вам нужно передать запрос на сервер с параметром определяющим то или иное действие. Что это будет, GET или POST, это уже вторичное, но в любом случае необходимое. Сам по себе JS вам ничего не сделает, это вы понимаете? А AJAX технология, это связка JS и РНР, а не волшебник. | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 23:01)
| | ага, т.е. необходимо значения переменных из JS передать на сервер через запрос, чтобы потом их непосредственно уже обрабатывать, я правильно понял?
Не подскажите, как это можно осуществить....
Ajax может это сделать?
П.С. Извеняюсь у меня глупые вопросы, пытаюсь понять суть работы)) | |
|
|
|
|
|
|
|
для: tokmak
(13.01.2009 в 23:06)
| | Конечно павильно. Если вам нужны некие действия в JS, или никое значение параметра запроса определяет JS-сценарий, то вы это значение должны передать на сервер в запросе. Что это будет, скрытая форма передающая методом POST (значение из JS в этом случае присваивается скрытому полю, и отпавка формы происходит методом submit()), либо подставляете это значение в url запроса (GET).
Ajax применяют в случае, если нужно изменить только один параметр, не перегружая остальную страницу. Если это не критерий, то он вам совсем не нужен - сделать запрос к серверу можно и без него. | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 23:13)
| | Уважаемый sim5, не могли бы подсказать, как можно передать запросы в JS к серверу, к сожалению я с ним мало дружу. Понимать легко понимаю код, а вот сам не могу написать.
Спасибо за пояснения, что это такое и как оно работает. | |
|
|
|
|
|
|
|
для: tokmak
(13.01.2009 в 23:20)
| | Мне неведомо кто является инициатором запроса у вас, имея ввиду сам JS-сценарий или пользователь, но если это JS, то тут либо работа таймера либо зависимость от условия. Другими словами, если ваш JS-сценарий сразу при загрузке страницы будет что-то определять и отправлять запрос на сервер, тот отдавать страницу, JS опять запрос и т.д., то у вас будет HTML-аналог генератора, а не страница для пользователя. Поэтому, я просто предполагаю, что инициирует запрос пользователь, например, делая некий выбор. Кстати, если надо вывести 3, 4, 5, 6... чего-то, то не надо никакого JS, достаточно обычной формы для выбора.
Но допустим, что пользователь выбрал нечто, запустив JS-сценарий, который получил у вас некую цифру, которую вам и надо отослать серверу. Например, как это передать формой и методом POST. Для этого на странице будет форма:
<form id="myfrm" action="main.php" method="post">
<input type="hidden" name="num" id="num" value="">
</form>
|
Ваш скрипт выполнив какой-то расчет, помещает это в скрытое поле формы
document.getElementById('num').value = тут ваше значение;
И далее отправляем запрос на сервер (отправляем форму):
document.getElementById('myfrm').submit().
Принимайте и проверяйте на сервере параметр $_POST['num'] и в зависимости от его значения выводите требуемое.
Либо в JS сценарии пишите запрос - формируете url запроса, добавляете параметр со значением, и отправляете его:
location="main.php?num="+тут ваше значение;
И принимаете на сервере $_GET['num']. | |
|
|
|
|
|
|
|
для: sim5
(13.01.2009 в 23:57)
| | sim5, спасибо за подробный ответ. Я пошел по технологии AJAX. Все переменные передаются как нужно, но! Ajax ведь не работает с различными доменами. Поэтому происходит нарушение безопасности и браузер говорит, что не удается проверить данные и спрашивает "Продолжить?" Как же быть?
v
ar xmlHttp
function mainl(l,p)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="http://ads.countclick/ads.php"
url=url+"?p="+l
url=url+"&l="+l
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("model-list").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
|
Принцип работы как на рекламных сервисах Бегун, Директ и прочие:
Пользователь устанавливает на своем сайте код JS(беру код Бегуна):
<script type="text/javascript">
var begun_auto_colors = new Array();
var begun_auto_fonts_size = new Array();
var begun_auto_pad = 107693574; // идентификатор площадки
var begun_auto_limit = 4; // число объявлений выводимых на площадке
var begun_auto_width = 700; // ширина блока объявлений
begun_auto_colors[0] = '#0000CC'; // цвет ссылки объявлений
begun_auto_colors[1] = '#000000'; // цвет текста объявления
begun_auto_colors[2] = '#00CC00'; // цвет домена объявления
begun_auto_colors[3] = '#FFFFFF'; // цвет фона блока объявлений
begun_auto_fonts_size[0] = '10pt'; // р-мер шрифта ссылки объявлений
begun_auto_fonts_size[1] = '9pt'; // р-мер шрифта текста объявления
begun_auto_fonts_size[2] = '9pt'; // р-мер шрифта домена объявления
begun_auto_fonts_size[3] = '8pt'; // р-мер шрифта заглушки
var begun_block_type = 'Horizontal'; // тип блока
</script>
<script src="http://autocontext.begun.ru/autocontext.js" type="text/javascript"></script>
|
Как им удалось это сделать? Используют они еще JSP. | |
|
|
|
|
|
|
|
для: tokmak
(21.01.2009 в 18:45)
| | Вы что хотите сделать, предложение выставлять ваш баннер на страницах желающих? Почитайте о более простом - iframe, этого будет вполне достаточно, и грузите в него что хотите. | |
|
|
|
|
|
|
|
для: sim5
(22.01.2009 в 02:13)
| | насчет iframe мне известно, а другого выхода нет никакого? ведь не у всех может быть включен iframe | |
|
|
|
|
|
|
|
для: tokmak
(22.01.2009 в 02:25)
| | А как выключить iframe? | |
|
|
|