2017-10-10 25 views
0

我試圖讓我的複選框在檢查時將變量更改爲true,但每次點擊它時,它都會刷新頁面並將配置值保留爲false。爲什麼點擊複選框時我的配置不會改變?

HTML代碼:

<input type="checkbox" name="music"> 

jQuery代碼:

從validate.php
<script> 
     $(document).ready(function() { 
      var music = document.getElementsByName("music") 
      $(music).click(function() { 
       window.location.href = 'validate.php?music'; 
      }) 
     }); 
</script> 

代碼:

if (isset($_POST["music"])) { 
    $config -> SetVar("music_status", "true", "Music Status"); 
} else { 
    $config -> SetVar("music_status", "false", "Music Status"); 
} 

的SETVAR功能不工作,因爲我用它來做其他的事情,它只是不希望似乎與我的複選框一起工作。任何幫助和提示,將不勝感激,幫助我解決這個問題。

+1

使用_GET代替_POST的,因爲你的代碼使用重定向並沒有形成與行動提交=崗位。 – numbtongue

+0

這允許我將值更改爲true,但現在它保持不變,並且不會更改爲false。 –

+0

window.location.href =(window.location.href.indexOf('music')!= - 1)? 'validate.php':'validate.php?music';' – numbtongue

回答

0

你總是設置$ _GET ['音樂'],但是你沒有設置它,也沒有檢查它的值。 你的JavaScript改爲

$(document).ready(function() { 
     var music = document.getElementsByName("music")[0].checked; 
     $(music).click(function() { 
      window.location.href = 'validate.php?music=' + music; 
     }) 
    }); 

和你的PHP代碼

if (isset($_GET["music"]) && $_GET['music'] == 'true') { 
+0

我不得不改變一些東西,但大多數情況下這有所幫助。謝謝! –

相關問題