2013-07-04 110 views
0

我有一個帶有複選框的用戶列表。每次選中複選框時,都會調用一個函數。該函數從複選框中獲取用戶標識,並將此用戶標識添加到php數組中,然後添加到cookie中。如果該cookie尚不存在,則應該創建它。 cookie的值應該是傳遞給此函數(id)的JavaScript參數。在JavaScript函數中動態填充PHP cookie與數組數據

我的問題是,我不知道如何動態地做到這一點。例如。當cookie中沒有用戶標識時,應將其添加到變量[0]中。此外,如何將JavaScript id變量傳遞給PHP以將其設置爲cookie值?

這是我到目前爲止已經試過:

function loadUserCalendar(id) { 
    console.log('user selected: ' + id); 

    // check if user is checked or not 
    if($('input[value="' + id+ '"]').is(':checked')) { 
     console.log('user ' + id + ' is checked now'); 

     // add user to cookie 
     <?php 
       $calendar_users = $_COOKIE['calendar_users']; 

       if(empty($calendar_users)) { 
        session_start(); 
        setcookie("calendar_users[" + $calendar_users.length + 1 + "]", "id", time()+3600*24*30*12); 
        session_commit(); 
     ?> 
        console.log('added user to cookie'); 
     <?php 

       } else { 
     ?> 
        console.log('going to add user to existing cookie'); 
     <?php 
       } 
     ?> 

    } else { 
     console.log('user ' + id + ' is UN-checked now'); 
     // remove user from cookie 
    } 
} 

任何幫助表示讚賞!謝謝。

+0

您是否知道:1)JavaScript和PHP不能同時運行? 2)Cookie是餅乾:沒有任何東西是「PHP cookie」,而JavaScript本身完全可以設置Cookie。 –

+0

不,我不是,這就是爲什麼我問。如果有辦法做到這一點,沒有PHP,甚至更好! – doonot

回答

0

如果你想從JavaScript傳遞一個變量到PHP,你需要使用AJAX,並且你需要將它保存在例如會話或數據庫中。

請記住,php是一種服務器端語言,在您收到響應後,服務器的連接會關閉。要將數據發送到服務器,您必須刷新整個頁面或使用AJAX。

另外,javascript餅乾和php餅乾之間沒有區別 - 它們是相同的。

檢查出這個網站如何設置在JS http://www.w3schools.com/js/js_cookies.asp

而且餅乾,如果你使用jQuery,它更容易:

$.cookie('somecookie', 1); 

How do I set/unset cookie with jQuery?

但是,你需要使用插件爲此https://github.com/carhartl/jquery-cookie