Я загружаю файл .php
через вызов ExtJS AJAX следующим образом:
menuItemApplication.header.on('click', function() { Ext.Ajax.request({ url: 'content/view_application.php', success: function(objServerResponse) { var responseText = objServerResponse.responseText; regionContent.update(responseText); var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi; while(scripts=scriptsFinder.exec(responseText)) { eval(scripts[1]); } } }); });
Javascript в загруженном файле .php выполняется отлично:
<script type="text/javascript"> regionContent.update('changed region content from within application view'); </script>
Но если Javascript генерируется через PHP , он не выполняется :
<?php echo "<script type=\"text/javascript\">\n"; echo "regionContent.update('changed region content from within application view')';\n"; echo "</script>\n"; ?>
Да, ответы одинаковы, как видно на панели Firebug Net, здесь с Javascript, который работает :
А вот с PHP-сгенерированным Javascript, который не работает :
Как я могу запустить исполняемый Javascript с PHP?
Эти ответы не совпадают. Проверить '; против ; в конце концов.
<?php echo "<script type=\"text/javascript\">\n"; echo "regionContent.update('changed region content from within application view')';\n"; echo "</script>\n"; ?>
Против
<?php echo "<script type=\"text/javascript\">\n"; echo "regionContent.update('changed region content from within application view');\n"; echo "</script>\n"; ?>
В вашем PHP-коде есть дополнительная цитата, в результате чего кавычки в Javascript работают некорректно; вместо:
echo "regionContent.update('changed region content from within application view')';\n";
Тебе нужно:
echo "regionContent.update('changed region content from within application view');\n";