Javascript和PHP执行if / else语句

时间:2011-10-18 20:18:28

标签: php javascript mysql

我正在尝试一个简单的if / else语句,使用Javascript& PHP(带jQuery cookie plugin)。

我的问题:每次触发此脚本时,它都会执行IF和ELSE语句。即使设置了我的cookie,它也会创建一个新的cookie并将其添加到我的数据库中。我是否正确使用这两种语言?

这是它的样子:

<script type="text/javascript"> 

//check to see if cookie is present
if ($.cookie('uid')) {
    var userCookie = $.cookie('uid');
    alert(userCookie);      

}
else {
    //create cookie and check to see if it is taken
    <?php 
    $success = false;
    while (!$success) {
        $cookie = createUniqueCookie();
        $success = checkIfCookieIsTaken($cookie);
    }       

    //store into database and set into browser
    if ($result = $mysqli->query("INSERT INTO users (cookie) VALUES ('" . $cookie . "')")) {
    ?>
                $.cookie('uid', '<?php echo $cookie ?>', { expires: 730, path: '/' });
                var userCookie = $.cookie('uid');
                alert('new cookie for user is '+ userCookie);
    <?php
    }
    ?>
}

2 个答案:

答案 0 :(得分:3)

看起来你正在尝试同时运行php和javascript。这不是那样的。

所有PHP都在服务器上运行。解析它的每一部分,并将结果代码发送到浏览器。如果那里有任何由浏览器运行的javascript,那么'邪恶'就已经完成了。

您不能只混合客户端和服务器代码:)

答案 1 :(得分:1)

PHP在服务器上执行。 Javascript在客户端(浏览器)上执行。

当向此脚本的Web服务器发出请求时,PHP将忽略<?php ?>个标记之间的所有内容,并将其余内容发送到浏览器。然后,浏览器将解析/执行生成的文件。

再次逐步完成您的设计,现在考虑到这一点。你会发现,按照你想要的方式混合语言是不可能的。在您的特定情况下,似乎所有这些都应该在服务器端完成。