Я пытаюсь использовать одну из моих функций PHP в одной из моих функций jQuery. Я понимаю, что он не выполнит код, но мне нужно выполнить эхо вызова функции, чтобы сервер мог обработать его. Пока у меня это:
.html('<h2>Please <a href=""<?php echo absolute_url("login.php"); ?>"">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)')
Но он работает неправильно. Я слышал, что мне нужно приложить фактический вызов функции php в Javascript с кавычками, которые я сделал (как одиночные, так и двойные), но они не сделали этого трюка. Есть идеи?
Вся функция для любого, кто задается вопросом:
// login or register notification $(document).ready(function() { $('.notice').click(function() { $('.error-notification').remove(); var $err = $('<div>').addClass('error-notification') .html('<h2>Please <a href=""<?php echo absolute_url("login.php"); ?>"">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)') .css('left', $(this).position().left); $(this).after($err); $err.fadeIn(150); }); $('.error-notification').live('click', function() { $(this).fadeOut(150, function() { $(this).remove(); }); }); });
Вы не можете – команды php выполняются во время загрузки страницы – ваша страница уже загружена и отображена. Вы должны знать, что php – это код на стороне сервера . Это означает, что когда ваш сайт запрашивается, ваш сервер генерирует выходной файл и заполняет все значения эха в ваш выходной файл. Клиент получает страницу со всеми переменными, отобранными на вашей странице, – никакие команды php никогда не выдаются клиенту, это инструкции для вашего сервера для компиляции веб-страницы обратно клиенту.
Почему бы вам просто не сохранить absolute_url («login.php») в переменной javscript во время вашей pageload
var loginUrl = "<?php echo absolute_url("login.php"); ?>";
а потом
.html('<h2>Please <a href="' + loginUrl + '">Login</a>')....
Edit – oh wait duh – вы делаете это: P извините за касательную, ваш файл js связан с вашей страницей, это заглушка, указывающая на файл, который будет включен. Это не регистрирует команды php.
Это на самом деле ничего не сделает, как вы отметили в своем вопросе, но попробуйте:
$('elem').html('<h2>Please <a href="<?php echo absolute_url("login.php"); ?>">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)');
Если это происходит с PHP-страницы, попробуйте:
$('elem').html('<h2>Please <a href="<?php echo absolute_url("login.php"); ?>">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)');
Очевидно, интерпретатор PHP никогда не увидит этого, и PHP-код никогда не будет выполнен, как вы уже отметили в своем вопросе.
вы не можете сделать это в своем js-файле, но вы можете сделать это в <script>
в HTML-файле.
.html('<h2>Please <a href="<?php echo absolute_url(\"login.php\"); ?>">login</a> or <a href="signup.php">register</a> to vote for this post. </h2>(click on this box to close)')
Вы проверили исходный код страницы результатов? я бы использовал только один «до и после php-тегов»
Я думаю, что правильный способ использовать php из Javascript – это создать веб-службы (в php) и вызвать их из вашего Javascript. Если вы хотите по-настоящему разобраться, вы можете отправить php-контент на сервер с помощью веб-службы, записать ее в виде временного файла, затем «потребовать» файл и запустить его … это совсем не так, существует очень уникальный прецедент, который нельзя сделать иначе. PHP, как чрезвычайно динамичный язык, допускает такое использование.
yu go для php ??? i, что это невозможно в js ,,
Лучше всего использовать html, очень эффективный и простой в консоли.
.html('<h2>Please <a href="login.php">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)')