Как подключить данные с PHP по средствам JS на удаленный сервер.
Здравствуйте!
Прошу помочь в решении вопроса о подключения. Есть php файл, который генерирует какой то контент беря его с БД и модифицируя, и выводит у себя же через echo "много контента с html разметкой"; . Есть совсем другой сайт, на другом сервере к которому по средствам js нужно вставить выше описанный контент в <div id="супер айди"> сюда вставить </div>. Подключать к сайту в который нужно вставить данный контент дополнительные библиотеки js нельзя. Фактически мне нужно на сайт по средствами js подключить и вставить в средину дива данные генерируемые php на удаленном сервере. Так как нету знаний js то не знаю как это сделать. Прошу помочь в решении данного вопроса, заранее всем очень благодарен. С уважением, Егор. |
Если удалённый сайт чужой и там ничего нельзя поменять, то одним javascript не обойдёшься из-за политики безопасности. Придётся уже на своём сервере парсить вывод чужого и уже готовый результат выдавать скрипту.
Если же доступ к тому заветному скрипту таки есть - то его ответ надо привести к виду jsonp. |
Цитата:
(function(){
txt=document.getElementById("intro").innerHTML;
document.write("<p>супер текст " + txt + "</p>");
}());
Подключить это <script type="text/javascript" src="http://супер адрес.js"></script> Или это так же не будет работать ? |
Вот это
echo "много контента с html разметкой";должно быть заменено на
echo "много контента с html разметкой, упакованного в (function(){}())";
и подключено, соответственно, как script. |
Можете навести небольшой пример, чтобы понял синтаксис подключаемого файла. Если можно очень рад был бы увидеть небольшой пример...
|
Пример: сервер/скрипт.php
echo "show('сформированный контент')"
<script src="сервер/скрипт.php"></script>
<script>
function show(html){
document.body.innerHTML = html;
}
</script>
http://learn.javascript.ru/play/mNlXi |
Огромное спасибо, остался один вопрос. Что делать если текст, в нашем примере phpout , создается не только хтмл но и для его создания нужен пхп скрипт к примеру:
$i=0;
while ($i<3){
$i++;
$a= rand(0, 3);
echo " <div>$a </div> ";
}
И у нас должно получиться при выходе ваш текст phpout 1 2 2 и 3 рандомных циферки которые пишутся с переменной а. И да, а как то что хочешь, выводить не просто в тело страницы, а к примеру <div id="супер айди"> сюда вставить </div> , то есть проводить поиск и вставлять по id ? |
Очевидно же?
Пример: сервер/скрипт.php
$i=0;
$out="";
while ($i<3){
$i++;
$a= rand(0, 3);
$out .= "<div>$a </div>";
}
echo "show('" . $out . "')";
<div id="суперайди"> сюда вставить </div>
<script src="сервер/скрипт.php"></script>
<script>
function show(html){
document.getElementById('суперайди').innerHTML = html;
}
</script>
|
А можно на этом примере http://learn.javascript.ru/play/mNlXi ?
|
Тоеть можете внести изменения в этот пример http://learn.javascript.ru/play/mNlXi ? Большое спасибо за помощь, извините что изрядно вас измучал :(
|
Nyam,
нет. Там нет php. |
Что то не выходит
Вот index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf8" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="intro"></div>
<script type="text/javascript" src="http://путь/engine.php"></script>
<script>
function show(html){
document.getElementById('intro').innerHTML = html;
}
</script>
</body>
</html>
Вот engine.php
<?php
$i=0;
$out="";
while ($i<3){
$i++;
$a= rand(0, 3);
$out .= "<div>$a </div>";
}
echo "show('" . $out . "')";
?>
Показывает пустую белую страницу , а как я понимаю должны быть три цифры через пробел. |
В любой непонятной ситуации смотри в консоль.(F12) Это железное правило без которого программировать можно даже не пытаться.
В данном случае надо поменять местами: <script type="text/javascript" src="http://путь/engine.php"></script>и
<script>
function show(html){
document.getElementById('intro').innerHTML = html;
}
</script>
Потому что функция show вызывается раньше чем она создана. |
Aetae, огромное вам спасибо за помощь.
|
| Часовой пояс GMT +3, время: 09:13. |