2013-02-12 105 views
0

我的第一次在這裏用Ajax進行遊覽。我試圖捕獲單個複選框的值,如果選中,則將PHP $ _SESSION變量設置爲true。

在HTML我有這個。

<input type="checkbox" name="agree" id="agree"/> 
and the js is this....not sure what to put in the AJAX data params?? 
    $(document).ready(function() { 
      $('#agree').click(function(){ 
       $.ajax({ 
        url: 'agree.php', 
        type: 'GET', 
        data: { agreement:"checked" } //NOT Sure ABout this?? 
       });  
     }) 
    }); 

和PHP,僞代碼也許是因爲它不工作..

if($_GET['agreement'] == 'checked') { 
$_SESSION['hm-agreement'] = true; 
    } else { 
$_SESSION['hm-agreement'] = false; 

}

+0

讓你的PHP文件的工作,測試它設置會話,和這個JavaScript *應該*訣竅。你需要session_start();之前稱之爲PHP。 – 2013-02-12 00:32:01

回答

0

AJAX調用似乎也不錯。可能是你應該添加一些調試到你的PHP腳本,並看看Firebug或其他開發工具。

不要忘了在您的PHP腳本上使用start_session()開始的腳本。 如果您忽略此調用,則會話對象不存在。

+0

贊!謝謝。現在添加start_session() – TopTomato 2013-02-12 00:36:09

0

您需要檢查是否選中了盒裝,無論您發送給PHP文件的是什麼,您的代碼現在都會將會話變量設置爲true。

還用速記得到主場迎戰阿賈克斯,更少的代碼

HTML

<input type="checkbox" name="agree" id="agree"/> 

JS

$(document).ready(function() { 
    $('#agree').click(function(){ 
     $.get('agree.php','agreement=' + (this.checked ? 1 : 0) }); 
    }) 
}); 

PHP

session_start(); 
if($_GET['agreement']) { 
    $_SESSION['hm-agreement'] = true; 
} else { 
    $_SESSION['hm-agreement'] = false; 
}