当将html设置到文档中时,Mootools脚本会破坏php标记
我正在为Joomla 2.5开发模块。我有一个问题。我想将数据发送到同一个页面并在其中接收答案,而无需重新加载。我找到了解决办法,但后来又卡住了 问题是,当我想使用javascript将代码插入div标记时,它会变成注释 这里是完整的功能当将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
<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并返回“直接访问”。。问题是标记不是正常生成的,而是使用。