Ajax. Исполнение JavaScript в коде, передаваемом с сервера

Mikelangelo

Новичок
Ajax. Исполнение JavaScript в коде, передаваемом с сервера

Добрый вечер. Вот разбираюсь с Аяксом,скачал с dklab библиотеку JsHttpRequest.
Взял пример с сайта dklab, добавил в него кусок кода:



PHP:
<script language="JavaScript"> 
alert("Привет"); 
</script>
Хочется,чтобы не только участок html-кода на странице заменялся кодом,полученным с сервера, но и,например, из заного сгенеренного участка страницы мог запускаться какой-нибудь джава-скрипт.Но почему-то не исполняется:( Заранее спасибо.




Код:
PHP:
<?php 
// Load JsHttpRequest backend. 
require_once "lib/JsHttpRequest.php"; 
// Create main library object. You MUST specify page encoding! 
$JsHttpRequest =& new JsHttpRequest("windows-1251"); 
// Store resulting data in $_RESULT array (will appear in req.responseJs). 
$GLOBALS['_RESULT'] = array( 
  "q" => 'file "' . @$_FILES['upl']['name'] . '" + string "' . $_REQUEST['txt'] . '"', 
  "md5" => md5(@file_get_contents($_FILES['upl']['tmp_name']) . @$_REQUEST['txt']), 
); 
// Below is unparsed stream data (will appear in req.responseText). 
?> 


<script language="JavaScript"> 
alert("Привет"); 
</script> 
<pre> 
<b>_REQUEST:</b> <?=print_r($_REQUEST, 1)?> 
<b>_FILES:</b> <?=print_r($_FILES, 1)?> 
</pre>
 

@ndrey

Новичок
а зачем его исполнять из сгенерированного html, почему нельзя исполнять js код по возврату из бэкэнда, в функции которая посылает ajax запрос?
 

AmdY

Пью пиво
Команда форума
$GLOBALS['_RESULT']['js'] = "alert(\"Привет\");";

JsHttpRequest.query(
"script.php",
'',
function(result, errors) {
eval(result.js);
}
);
 

Mikelangelo

Новичок
@ndrey
Ну а если у меня в сгенеренном hml-коде есть элемент с id ,а в сгенеренном js я хочу сразу же обратиться к нему через getelementbyid?
Ведь пока элемент не сгенерен, я к нему и обратиться не могу.


AmdY
Спасибо,сейчас опробую
 

@ndrey

Новичок
Mikelangelo
ну и в чем проблема?

document.getElementById('Myid').innerHTML = req.responseJS.data;
if (req.responseJS.code) eval(req.responseJS.code);

где req.responseJS.data, например, $_RESULT['data']='<p id="myId2"></p>';
а req.responseJS.code, это $_RESULT['code']="document.getElementById('myId2').innerHTML+='test'';
 
Сверху