jquery中的php代码单击函数触发而不单击

时间:2014-08-10 06:47:29

标签: php jquery

所以$user->turnon始终是第二个值,即" 1"加载页面时

<script>
    $(document).ready(function(){
        $(".turnof").click(function(e){
            var editcase = "<?php $USER->turnon = 0 ;?>";
        });
        $(".turnon").click(function(e){
            var editcase = "<?php $USER->turnon = 1 ;?>";
        });
    });
</script>

2 个答案:

答案 0 :(得分:2)

您无法直接从JavaScript函数调用PHP。 PHP代码在您的服务器上执行,因此它将在页面加载之前进行评估。您的代码与......相同。

<?php
    $USER->turnon = 0;
    $USER->turnon = 1;
?>

<script>
    $(document).ready(function(){

        $(".turnof").click(function(e){
            var editcase = "";
        });

        $(".turnon").click(function(e){
            var editcase = "";
        });

    });
</script>

由于您未在PHP代码中使用echo功能(或其他打印功能),因此不会向页面输出任何内容,因此您的点击功能只会设置您的JavaScript变量{{1}成为空字符串。

在PHP方面,您只需将editcase设置为0,然后立即将其值更改为1.这会在页面加载之前发生。

您可能希望执行AJAX请求,该请求允许您从JavaScript函数向服务器发起请求。对服务器的请求可用于执行PHP代码。

答案 1 :(得分:0)

你应该通过Ajax来做,如评论中所述。

<script>
    $(document).ready(function(){
        $(".turnof").click(function(e){
            $.ajax({
                url: "/ajax.php?turnon=0",
                context: document.body
            }).done(function() {
                alert('success');
            });
        });
        $(".turnon").click(function(e){
            $.ajax({
                url: "/ajax.php?turnon=1",
                context: document.body
            }).done(function() {
                alert('success');
            });
        });
    });
</script>

这是ajax.php

//session start etc..
if (isset($_GET['turnon'])) {
    $USER->turnon = $_GET['turnon'] === '1' ? 1 : 0;
}