当将html设置到文档中时,Mootools脚本会破坏php标记

当将html设置到文档中时,Mootools脚本会破坏php标记,php,javascript,joomla,mootools,joomla-extensions,Php,Javascript,Joomla,Mootools,Joomla Extensions,我正在为Joomla 2.5开发模块。我有一个问题。我想将数据发送到同一个页面并在其中接收答案,而无需重新加载。我找到了解决办法,但后来又卡住了 问题是,当我想使用javascript将代码插入div标记时,它会变成注释 这里是完整的功能 <script type="text/javascript"> window.addEvent('domready', function request() { $('SNbutton').addEvent('click', funct

我正在为Joomla 2.5开发模块。我有一个问题。我想将数据发送到同一个页面并在其中接收答案,而无需重新加载。我找到了解决办法,但后来又卡住了

问题是,当我想使用javascript将代码插入div标记时,它会变成注释

这里是完整的功能

<script type="text/javascript">

window.addEvent('domready', function request() {

    $('SNbutton').addEvent('click', function(event) {
        event.stop();
        var url = window.location.href;
        var message = document.getElementById('message');
        var msg = '<?php echo $msg; ?>';
        var req = new Request.HTML({
            method: 'post',
            url: url,
            data: {'artID' : $('artid').get('value')},
            onComplete: function(response) { message.set('html', msg).setStyle('display','inline');
            }
        }).send();
    });
});
</script>
以下是结果html:

    <form name="accept_form" action="#" ><br/>
    <input type="hidden" id="artid" name="artID" value="4"/>
    <input type="button" class="SNbutton" id="SNbutton" value="I take it!" title="Accept this job and bound it to your profile.">
    </form>
    <div id="message" style="display:inline;" ><!--php echo $msg ?--></div>
另外,该脚本应该获取文章id并将其发送到同一页面,根据文章的不同,该页面将生成消息,该消息应该显示在正确的位置,但不知何故它会被损坏


另外,不要担心服务器会执行php代码。据我所知,如果脚本是通过头部标签中的src包含的,那么它就不起作用了。

你能试着这样做吗

var msg = <?php echo "'".$msg."'"; ?>;

我在想,可能是因为里面有引号,这会把解释器搞得一团糟。

插入到已经加载到浏览器的页面中的PHP代码块不能被服务器解释,它只是一个字符串。要获得所需的$msg值,您需要另一个页面来响应Request.HTML调用并返回一些代码

这里的区别在于服务器端代码和客户端代码。我想测试一下,让你的url类似于provideMessage.php,然后让该页面响应你的Request.HTML


我可能遗漏了Joomla模块的工作原理

当然那是因为它是一个JavaScript字符串?我不明白。对不起,也许我应该多学习js…不,只是第二部分。脚本文件.js包含在head标记的脚本源链接页面中。对,这样就不会通过PHP解释器发送.js,除非您已经将PHP设置为读取.js文件。我想这就是你的基本问题所在。谢谢你的回答。当然,我尝试使用另一个生成消息$msg的页面,但Joomla使用了一种叫做JEXEC的东西,它阻止javascript并返回“直接访问”。。问题是标记不是正常生成的,而是使用。