javascript中的PHP代码由REFRESH而不是onClick触发

时间:2013-05-16 19:31:22

标签: php javascript toggle

此代码用于打开/关闭聊天

问题是,每当我刷新页面时它会打开/关闭聊天,它应该用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; ?>

有更好的方法来编码吗?

2 个答案:

答案 0 :(得分:1)

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

看起来你需要做的是在调用update_option时执行任何功能,并用javascript替换它。如果在设置该选项时必须在服务器端更新某些内容,则可以使用AJAX调用来执行此操作,但仍需要在Javascript中处理前端功能。

答案 1 :(得分: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函数。有很多如何实现它的例子。