为什么点击复选框时我的配置不会改变?

问题描述:

我试图让我的复选框在检查时将变量更改为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

你总是设置$ _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

我不得不改变一些东西,但大多数情况下这有所帮助。谢谢! –