Php 复选框问题(使用post和onchange)

Php 复选框问题(使用post和onchange),php,ajax,Php,Ajax,我有动态生成的复选框,选中复选框后,onchange方法工作正常,并且当用户未选中复选框时,我的函数也会被调用onchange方法调用我的预期函数。问题是当选中复选框时,页面的一部分变为活动状态,这很好,但当用户取消选中复选框时,页面的该部分再次变为活动状态,并且复选框“checked”的值在第一次选中后保持为yes。是否有方法检测用户何时选择取消检查,以便页面的活动部分变为非活动 我是否可以在表单中未提交的情况下发送复选框状态。它是否必须提交后工作。我必须为此使用Java脚本吗 我试过了我有点

我有动态生成的复选框,选中复选框后,onchange方法工作正常,并且当用户未选中复选框时,我的函数也会被调用onchange方法调用我的预期函数。问题是当选中复选框时,页面的一部分变为活动状态,这很好,但当用户取消选中复选框时,页面的该部分再次变为活动状态,并且复选框“checked”的值在第一次选中后保持为yes。是否有方法检测用户何时选择取消检查,以便页面的活动部分变为非活动

我是否可以在表单中未提交的情况下发送复选框状态。它是否必须提交后工作。我必须为此使用Java脚本吗

我试过了我有点问题

<script type="text/jscript">
//this funciton will be called when user checks a check box. 
function edit(){


     //get selected category from the form 
    //var formName = 'choose';
    //var Category = document[formName]['choose'].value;


    //check if browser suports ajax
    var xmlhttp = null;      
    if(typeof XMLHttpRequest != 'udefined'){
      xmlhttp = new XMLHttpRequest();
    }

    else if(typeof ActiveXObject != 'undefined'){
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }

    else 
        throw new Error('You browser doesn\'t support ajax');


    //open connection with activateImages.php to recieve the active images as an acho
    xmlhttp.open("GET", "activateImages.php",true);         

    //echeck if ready to recieve        
    xmlhttp.onreadystatechange = function (){

    if(xmlhttp.readyState == 4)
      window.activate(xmlhttp);
    };

    xmlhttp.send(null);
    }

    //recieve the active images then insert them in the specified location of the page. 
    function activate(xhr){

        if(xhr.status == 200){
            document.getElementById('images').innerHTML = xhr.responseText;

        }
        else 
            throw new Error('Server has encountered an error\n'+
            'Error code = '+xhr.status);

}

</script>

//当用户选中复选框时,将调用此函数。
函数编辑(){
//从表单中获取所选类别
//var formName='choose';
//var Category=document[formName]['choose'].value;
//检查浏览器是否支持ajax
var xmlhttp=null;
if(XMLHttpRequest的类型!=“udefined”){
xmlhttp=新的XMLHttpRequest();
}
else if(ActiveXObject的类型!=“未定义”){
xmlhttp=newActiveXObject('Microsoft.xmlhttp');
}
其他的
抛出新错误(“您的浏览器不支持ajax”);
//打开与activateImages.php的连接,以acho形式接收活动图像
open(“GET”,“activateImages.php”,true);
//检查是否准备好接收
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4)
window.activate(xmlhttp);
};
xmlhttp.send(空);
}
//接收活动图像,然后将其插入页面的指定位置。
功能激活(xhr){
如果(xhr.status==200){
document.getElementById('images').innerHTML=xhr.responseText;
}
其他的
抛出新错误('服务器遇到错误\n'+
“错误代码=”+xhr.status);
}

我的建议是,最好使用这样的库来处理这种复杂的请求。主要原因是,它是跨浏览器兼容的,并且更容易实现。对于与您相同的逻辑,您可以在jQuery中这样做

首先,在标题中包含脚本

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

我的建议是,最好使用像这样的库来处理这种复杂的请求。主要原因是,它是跨浏览器兼容的,并且更容易实现。对于与您相同的逻辑,您可以在jQuery中这样做

首先,在标题中包含脚本

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

在更新选中状态之前,不会调用更改事件处理程序:

<label><input type='checkbox' onchange='handleChange(this);'>Checkbox</label>

function handleChange(cb) {
  console.log("Changed, new value = " + cb.checked);
}
复选框
功能手柄更换(cb){
console.log(“已更改,新值=“+cb.checked”);
}


handleChange函数将告诉您复选框的值何时更改为true或false。使用该选项隐藏和显示您的div。

在更新选中状态之前,不会调用更改事件处理程序:

<label><input type='checkbox' onchange='handleChange(this);'>Checkbox</label>

function handleChange(cb) {
  console.log("Changed, new value = " + cb.checked);
}
复选框
功能手柄更换(cb){
console.log(“已更改,新值=“+cb.checked”);
}


handleChange函数将告诉您复选框的值何时更改为true或false。用它来隐藏和显示您的div。

谢谢你们的帮助。如果您能勾选答案,我将不胜感激。:)谢谢你们的帮助。如果你们能勾选答案,我将不胜感激。:)可能的重复可能的重复