如何在jQuery中回显PHP?

时间:2011-05-05 09:59:01

标签: php javascript jquery echo

我正在尝试在我的一个jQuery函数中使用我的一个PHP函数。我知道它不会执行代码,但我需要回显函数调用,因此服务器可以处理它。到目前为止,我有这个:

    .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)')

但它无法正常工作。我听说我需要在Javascript中用引号括起实际的php函数调用,我做了(单个和双重),但他们没有做到这一点。有什么想法吗?

任何想知道的人的整个功能:

      // 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();
        });
    });
});

6 个答案:

答案 0 :(得分:5)

你不能 - 在页面加载期间运行php命令 - 你的页面已经加载和渲染。您应该知道php是服务器端代码。这意味着当您的网站被请求时,您的服务器会生成输出文件并将所有回显值填入输出文件中。客户端获取页面,其中所有变量都回显到您的页面 - 没有给客户端提供任何php命令,它们是服务器将网页编译回客户端的说明。

为什么不在页面加载期间将absolute_url(“login.php”)存储在javscript变量中

var loginUrl = "<?php echo absolute_url("login.php"); ?>";

然后

.html('<h2>Please <a href="' + loginUrl + '">Login</a>')....

编辑 - 哦等等 - 你正在这样做:P对不起切线然后,你的js文件链接到你的页面,它是一个指向要包含的文件的存根。这不会注册php命令。

答案 1 :(得分:0)

这实际上并没有像你在问题中提到的那样做,但尝试:

$('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="&lt;?php echo absolute_url("login.php"); ?&gt;">login</a> or <a href="signup.php">register</a> to vote for this post.</h2>(click on this box to close)');

显然,PHP解释器永远不会看到这个,并且PHP代码永远不会像您在问题中已经注意到的那样执行。

答案 2 :(得分:0)

您无法在js文件中执行此操作,但可以在HTML文件的<script>标记中执行此操作。

.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)')

答案 3 :(得分:0)

您检查过结果页面的源代码吗?我只会使用一个“之前和之后的php标签

答案 4 :(得分:0)

我认为从Javascript使用php的正确方法是创建Web服务(在php中)并从您的Javascript中调用它们。 如果你想真的疯狂,可以使用web服务将php内容发送到服务器,将其作为临时文件写入,然后“需要”文件并运行它...这是非常不可取的事情,除非有一个非常独特的用例,否则无法完成。 PHP作为一种极其动态的语言允许这种用法。

答案 5 :(得分:-1)

你去找php吗?我认为它不可能在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)')