为什么点击复选框时我的配置不会改变?
问题描述:
我试图让我的复选框在检查时将变量更改为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功能不工作,因为我用它来做其他的事情,它只是不希望似乎与我的复选框一起工作。任何帮助和提示,将不胜感激,帮助我解决这个问题。
答
你总是设置$ _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
我不得不改变一些东西,但大多数情况下这有所帮助。谢谢! –
使用_GET代替_POST的,因为你的代码使用重定向并没有形成与行动提交=岗位。 – numbtongue
这允许我将值更改为true,但现在它保持不变,并且不会更改为false。 –
window.location.href =(window.location.href.indexOf('music')!= - 1)? 'validate.php':'validate.php?music';' – numbtongue