2011-10-18 53 views
0

我正在嘗試使用Javascript的PHP(與jQuery cookie plugin)一個簡單的if/else語句。執行兩個if/else語句的Javascript和PHP

我的問題:每次腳本觸發時,它都會執行IF和ELSE語句。即使設置了我的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 
    } 
    ?> 
} 

回答

3

它看起來像你正試圖在同一時間運行PHP和JavaScript。那不行。

所有的PHP都在服務器上運行。它的每一點都被解析,並且生成的代碼被髮送到瀏覽器。如果在那裏有任何由瀏覽器運行的JavaScript,那麼'邪惡'已經完成了。

你不能只是混合這樣的客戶端和服務器代碼:)

1

PHP在服務器上執行。 Javascript在客戶端(瀏覽器)上執行。

當向該腳本的Web服務器發出請求時,PHP將忽略不在<?php?>標籤之間的所有內容,並將其餘標籤發送給瀏覽器。瀏覽器將解析/執行結果文件。

再次逐步通過您的設計,現在考慮到這一點。你會發現以你想要做的方式混合語言是不可能的。在你的特定情況下,似乎所有這些都應該在服務器端完成。