0

此代码旨在打开/关闭聊天

问题是,每次我刷新页面时它都会打开/关闭聊天,它应该通过 onClick href 触发,比如

<a href="javascript:void(0)" class="chat_toggle">Enable Chat</a>



<!-- Show/Hide Chat -->
<?php if ((get_option('show_chat') != "")):?>
    <script type="text/javascript">
       var $j = jQuery.noConflict();
       $j(document).ready(function(){
        $j('.chat_toggle').click(function(){
             document.write("<?php update_option("show_chat",""); ?>");
    });

});
</script>
<?php elseif ((get_option('show_chat') === "")):?>
    <script type="text/javascript">
       var $j = jQuery.noConflict();
       $j(document).ready(function(){
        $j('.chat_toggle').click(function(){
             document.write("<?php update_option("show_chat","1"); ?>");
    });

});
</script>
<?php endif; ?>

有没有更好的编码方式?

4

2 回答 2

1

PHP 在服务器端处理,Javascript 在客户端处理。因此,当您尝试使用 document.write 动态添加 PHP 时,PHP 将不会被执行(此时服务器看不到它)。

看起来您需要做的是在调用 update_option 中完成任何功能,并将其替换为 javascript。如果在设置该选项时绝对必须在服务器端更新某些内容,您可以使用 AJAX 调用来完成,但仍需要处理 Javascript 中的前端功能。

于 2013-05-16T19:39:24.400 回答
0
<a href="#" class="chat_toggle">Enable Chat</a>

<!-- Show/Hide Chat -->
<script type="text/javascript">
       var $j = jQuery.noConflict();
       $j(document).ready(function(){
        $j('.chat_toggle').click(function(){

<?php if (!empty(get_option('show_chat'))) { ?>

  //you need to add ajax call in here to update the options

<?php 
}
else { ?>

  //you need to add ajax call in here to update the options

<?php } ?>


   });

});
</script>

您需要添加 ajax 调用来更新您的选项值,您不能简单地使用 document.write.. jquery 带有一个简单强大的 ajax 功能。有很多例子可以说明如何实现它。

于 2013-05-16T19:55:35.547 回答