1

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

问题是,当我想使用 javascript 插入 div 标签代码时<?php echo $msg; ?>,它变成了 comment <!--php echo $msg; ?-->

这是完整的功能

<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>

PS这个脚本应该获取文章ID并将其发送到同一页面,根据文章,页面将生成应该显示在正确位置的消息,但不知何故它会损坏。

PSS 不要担心服务器执行 php 代码。据我所知,如果脚本包含在头部标签中的 src 中,它不会起作用。

4

2 回答 2

0

插入到已经加载到浏览器中的页面中的一段 PHP 代码不能被服务器解释 - 它只是一个字符串。要获得$msg您想要的价值,您需要另一个可以响应您的Request.HTML呼叫并取回一些代码的页面。

这里的区别在于服务器端代码和客户端代码。我想测试这个让你的url东西像provideMessage.php然后让那个页面响应你的Request.HTML.

我可能遗漏了有关 Joomla 模块如何工作的信息。

于 2012-06-24T03:39:39.963 回答
0

你可以试试这样吗?

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

我在想,也许它在引号内的事实弄乱了解释器。

于 2012-06-22T15:46:04.787 回答