Например если у меня в скрипте запускаемом аяксом есть строчка PHP: print " <script language=\"JavaScript\"> alert(\"Ваш голос засчитан. Рейтинг - $resr\"); </script> "; То почему когда я вывожу результат работы скрипта responseText'ом то ява скрипт не исполняется И как сделать чтоб исполнялся?
эээ... сперва почитать про аякс, json, xml и rpc - перестанете задавать такие вопросы. по делу - возвращайте аяксом не код, а просто переменную, а в клаент-сайде проверяйте ее наличие в ответе. если есть переменная - тут же алертнули юзеру вашу месагу. ну или как там вам надо.
Да я сначало так и хотел,но всётаки мне кажется что держать js в работающем скрипте как-то правельнее ИМХО
тогда советую почитать про API - что это, как реализовано. коротко - передаются только данные - в вашем случае на сервере их подготовили, на клиенте приняли и обработали - все.
Код (Text): document.getElementById(****).innerHTML=eval(ajax.responseText); Остановился пока на eval'е не работает =( в пхп: PHP: print " document.write('*******'); alert(\"Ваш голос засчитан. Рейтинг - $resr\"); "; сорь конечно =) я в js новичёк =(
Mr.M.I.T. ты передавай два массива. ajax.responseText и ajax.responseJS и вот этот JS и MyEval(); [js] var MyEval = function ( js ) { if(js != '') { if ( window.execScript ) window.execScript( js ); else // eval.call( js); window.setTimeout( js, 0); } } [/js]
эээ =) Либа? тоесть? ajax сам писал =)) А вот пример работы аякса http://mit-home.nov.ru/35/ Но должно ещё алертоваться что голос засчитан и показать текущий рейтинг.. Чесно не понял затеи =( тоесть делать вывод из 2 массивов? нет не то... или ajax.responseJS пойдёт как js? хм..щас попробую... Только сначало давай с этим =) А то нето не сё выйдет... вот и весь аякс =)) [js]function ajaxsendget(url,elm,evl) { var ajax=ajaxconn(); ajax.onreadystatechange = function() { document.getElementById('ajaxload').style.visibility='visible'; if (ajax.readyState==4) { document.getElementById('ajaxload').style.visibility='hidden'; if (!evl) { document.getElementById(elm).innerHTML=ajax.responseText; }else { document.getElementById(elm).innerHTML=eval(ajax.responseText); } } }; ajax.open("GET",url, false); ajax.send(null); } function ajaxsendpost(url,param,elm,evl) { var ajax=ajaxconn(); ajax.onreadystatechange = function() { document.getElementById('ajaxload').style.visibility='visible'; if (ajax.readyState==4) { document.getElementById('ajaxload').style.visibility='hidden'; if (!evl) { document.getElementById(elm).innerHTML=ajax.responseText; }else { document.getElementById(elm).innerHTML=eval(ajax.responseText); } } }; ajax.open("POST",url, false); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send(param); } function ajaxconn() { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { req = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e){} try { req = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e){} } return req; } [/js]
/me почесал затылок... Интересно с чего это вы взяли что я называюсь в честь Массачусетсского технологического института =))) Ищите в нэте что-то типа Методика Mr.M.I.T. - подсчёт карт в БлэкДжек Зы А по теме есть идеи? =) пока 440hz не пришёл
я всетаки не понимаю, почему вы уперлись в передачу именно скрипта, а не данных? ведь с данными проще, и ваш скрипт давно бы уже работал!
потому что я стремлюсь к универсальности =) А если будут передоваться данные то придётся для каждого скрипта писать свой запрос... ии тем более ведь работает пхп скрипт, так пусть он и разговаривает 0_о или может я вас не так понимаю =(?
Mr.M.I.T. Используйте готовые решения. Если prototype или jquery кажутся Вам громоздкими, то советую посмотреть JsHttpRequest
эмм 1 =) как проверяете 2. как выводите а если там не только js но и html..eval наверно работать не будет..хотя у меня он и так не работает =(