Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Совмещение нескольких языков программирования на одной странице
 
 автор: Soneks   (22.08.2006 в 14:27)   письмо автору
 
 

Дело вот в чем. Я пишу свой собственный сайт на языке ПХП. Но вот встает загвостка. Страницы у меня ПХП, включая естесственно и главную, но различные баннерные сети и рекламные компании предлагают код в JavaScript. Например для размещения того же баннера. Что делать? Ведь совмещать два языке на одной странице нельзя. Помогите.

   
 
 автор: P@Sol   (22.08.2006 в 14:29)   письмо автору
 
   для: Soneks   (22.08.2006 в 14:27)
 

кто сказал что нельзя? вставляешь код через допустим echo "<script>alert('Привет')</script>";

   
 
 автор: elenaki   (22.08.2006 в 15:06)   письмо автору
 
   для: P@Sol   (22.08.2006 в 14:29)
 

РHР - серверный язык, а Java-script исполняется на стороне клиента, в браузере, поэтому
для РHР он - просто текст. главное, не запутаться в кавычках.

   
 
 автор: Soneks   (22.08.2006 в 17:15)   письмо автору
 
   для: elenaki   (22.08.2006 в 15:06)
 

А можно например так:
 <? ... ?> <script> ... </script> <? ... ?> 
Или можно только через echo?

   
 
 автор: motoP@Sol   (22.08.2006 в 17:49)
 
   для: Soneks   (22.08.2006 в 17:15)
 

конечно можно, echo для примера я написал-выводите так как текст выводите (или html)

   
 
 автор: Igorel   (22.08.2006 в 19:38)   письмо автору
 
   для: Soneks   (22.08.2006 в 17:15)
 


<? ... ?> <script> ... </script> <? ... ?> 

У меня таким способом JavaScript не хочет считывать переменные из РНР-скрипта. Он их попросту не видит.
И ещё вопосик есть: если джава-скрипт длинный (строк 10) правильно ли писать

echo "<script language="text/javascript>
тело
джава
скрипта
</script>

или необходимо каждую строку джавы в echo помещать ?

   
 
 автор: Киналь   (22.08.2006 в 19:52)   письмо автору
 
   для: Igorel   (22.08.2006 в 19:38)
 

Писать - правильно. По первому вопросу - приведите пример, исправим.

   
 
 автор: Igorel   (22.08.2006 в 22:27)   письмо автору
 
   для: Киналь   (22.08.2006 в 19:52)
 

>Писать - правильно. По первому вопросу - приведите пример, исправим.
Прошу ответить на оба вороса.

При таком написании JavaScript не считывает переменные из РНР-скрипта. Пример:

<?php
for($i =0$i 5$i++) {
$imgwidth rand(50,1024); $imgheight rand(50,768);

?><script type="text/javascript">

    var imgwidth = $imgwidth; var imgheight = $imgheight;

    if ((screen.width) >= imgwidth)
         {
                var width = imgwidth; var left = Math.ceil((screen.width-width)/2);
         } else {
                var width = (screen.width); var left = 0;
                };

    if ((screen.height) >= imgheight)
         {
                var height = imgheight; var top = Math.ceil((screen.height-height)/2);
         } else {
                var height = (screen.height); var top = 0;
                };
    document.write("<br>width="+width+" height="+height+" * left="+top+" top="+left+"<br>")
    </script><?
echo " ".$imgwidth." ".$imgheight."<br>";
                         }
?>


а при таком:

<?php
for($i =0$i 5$i++) {
$imgwidth rand(50,1024); $imgheight rand(50,768);

echo 
"<script type=\"text/javascript\">

    var imgwidth = 
$imgwidth; var imgheight = $imgheight;

    if ((screen.width) >= imgwidth)
         {
                var width = imgwidth; var left = Math.ceil((screen.width-width)/2);
         } else {
                var width = (screen.width); var left = 0;
                };

    if ((screen.height) >= imgheight)
         {
                var height = imgheight; var top = Math.ceil((screen.height-height)/2);
         } else {
                var height = (screen.height); var top = 0;
                };
    document.write(\"<br>width=\"+width+\" height=\"+height+\" * left=\"+top+\" top=\"+left+\"<br>\")
    </script>"
;
echo 
" ".$imgwidth." ".$imgheight."<br>";
                         }
?>

всё работает (на правильность расчётов ещё не проверял).

   
 
 автор: elenaki   (23.08.2006 в 10:26)   письмо автору
 
   для: Igorel   (22.08.2006 в 22:27)
 

в первом варианте достаточно сделать в РHР вывод переменных (для РHР это вывод, а для JS - присваивание). вот тут:

 var imgwidth = <?=$imgwidth?>
    var imgheight = <?=$imgheight?>

   
 
 автор: Киналь   (23.08.2006 в 10:45)   письмо автору
 
   для: Igorel   (22.08.2006 в 22:27)
 

Именно. Когда вы пишете imgwidth = $imgwidth, вы находитесь вне РНР, и переменных РНР тут просто не существует. Чтобы подставить их значения, надо "вернуться" в РНР.

   
 
 автор: P@Sol   (23.08.2006 в 11:49)   письмо автору
 
   для: Киналь   (23.08.2006 в 10:45)
 

а для того чтобы вернуться в php надо открыть php-дискриптор (<? или <?php) с.м. пример выше;)

   
 
 автор: Igorel   (23.08.2006 в 17:21)   письмо автору
 
   для: P@Sol   (23.08.2006 в 11:49)
 

С первым примером понятно, спасибо. А со вторым, поясните: правильно ли так писать, с точки зрения правильности совмещения нескольких языков программирования, или подобного лучше не писать ?

   
 
 автор: kasmanaft   (23.08.2006 в 17:53)   письмо автору
 
   для: Igorel   (23.08.2006 в 17:21)
 

Если все в echo помещать ... это ж там .. :))
Правильно :))

   
 
 автор: Trianon   (23.08.2006 в 18:06)   письмо автору
 
   для: Igorel   (23.08.2006 в 17:21)
 

они никуда не совмещаются. Скрипт на одном формирует исх. код для другого.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования