[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: JS и PHP
gidrosoldat
Алоха, друзья!
Только сел за изучение JS, поэтому попрошу сразу не бить ногами и не закидывать какашками )
Прочитал полторы сотни страниц из довольно скучной книженции "JavaScript Подробное руководство. Пятое издание. Дэвид Флэнаган"и решил опробовать знания на практике. Увы не все получилось (

Суть опыта была интегрирование PHP и JS скриптов, передача переменных туда и обратно. Вот сам код:
index.php
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);
mb_internal_encoding('UTF-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');

echo '<script language="javascript" src="js.js"></script>';
$left_link = 'Левая ссылка!';
$right_link = 'Правая ссылка!';
echo '
<div>
<div style="float:left" onclick="showLeft()">Первая ссылка</div>
<div style="float:right" onclick="showRight()">Вторая ссылка</div><br>
<div id="content" style="text-align: center">bla</div>
</div>
'
;

и подключаемый js.js
function showLeft()
{
var cont = document.getElementById('content');
cont.innerHTML = "<?php echo $left_link; ?>";
}
function showRight()
{
var cont = document.getElementById('content');
cont.innerHTML = "Правая ссылка!";
}

Почему то не вызывается php переменная из js функции showLeft(). Когда я жму на первую ссылку, содержимое дива 'content' остается пустым. Что я делаю не так?




Спустя 7 минут, 58 секунд (10.05.2011 - 16:13) alex12060 написал(а):
gidrosoldat

А Вы попробуйте в ХТМЛ файл вставить пхп код? Сработает? Думаю нет.
JS файлы предназначены для работы с JavaScript кодом.

Вывод: Неправильно так делать, в ЖС писать код ПХП.

Как побороть:

1. htacces

AddType application/x-httpd-php .php .htm .html .phtml .js .css


Теперь куда хотите. туда и пишите PHP код.

Еще можно не выделать в отдельный файл код, а оставить его в php файле, тогда там сработает без .htaccess

Спустя 18 минут, 7 секунд (10.05.2011 - 16:31) gidrosoldat написал(а):
alex12060, моя ошибка.
Но я до боли в зубах не хочу делать кашу из PHP, JS и HTML кода в PHP файле. Хотелось бы разделять эти файлы и функции.
Я думаю вы поняли, чего я хотел добиться из этого примера - как мне его сделать правильно и чтобы код не резал глаз?


Спустя 10 минут, 19 секунд (10.05.2011 - 16:41) alex12060 написал(а):
Отредактировал. Теперь Вам видно?

Спустя 3 минуты, 15 секунд (10.05.2011 - 16:44) Игорь_Vasinsky написал(а):
Цитата
Но я до боли в зубах не хочу делать кашу из PHP, JS

а сам:
cont.innerHTML = "<?php echo $left_link; ?>";

Вам же говорят, в js файла php работать не будет, как выход js прямо в коде страницы

Спустя 55 минут, 14 секунд (10.05.2011 - 17:40) gidrosoldat написал(а):
Цитата (Игорь_Vasinsky @ 10.05.2011 - 13:44)
Вам же говорят, в js файла php работать не будет, как выход js прямо в коде страницы

Хмм, ну может есть какие то специальные функции в JS?
Вроде бы есть, что идут по линку и получают ответ.
Например:
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

var xmlhttp = getXmlHttp()
xmlhttp.open('GET', '/modules/rsslib/rss_request.php', true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
document.getElementById('div_my').innerHTML = xmlhttp.responseText;
}
}
}
;
xmlhttp.send(null);

Что нибудь такое, но попроще и применимо к моему случаю.

Спустя 2 часа, 4 минуты, 52 секунды (10.05.2011 - 19:45) Игорь_Vasinsky написал(а):

Спустя 34 минуты, 32 секунды (10.05.2011 - 20:19) gidrosoldat написал(а):
Игорь_Vasinsky, думаю на первое время и этого хватит. А потом (когда по книжке дальше дойду все само собой разъяснится!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.