Javascript 将复选框的值保存到数据库

Javascript 将复选框的值保存到数据库,javascript,php,html,checkbox,Javascript,Php,Html,Checkbox,嗨,我有一个复选框,然后我想用php保存这个复选框的值,但是这个值是用javascrip生成的。如何使用php保存该vaue 复选框: <input type='checkbox' name='calibrate' onclick='OnChangeCheckbox(this), enable_text(this.checked)' id='myCheckbox' /> <input type="submit" value="UPDATE" id="gobutton" styl

嗨,我有一个复选框,然后我想用php保存这个复选框的值,但是这个值是用javascrip生成的。如何使用php保存该vaue

复选框:

<input type='checkbox' name='calibrate' onclick='OnChangeCheckbox(this), enable_text(this.checked)' id='myCheckbox' />
<input type="submit" value="UPDATE" id="gobutton" style="float: right; padding: 3px 15px 3px 15px; margin-right: 6px;" />

尝试在流程操作“在您的案例中不需要JAVASCRIPT而是使用PHP”中添加这一行删除JAVASCRIPT onclick

<?php $calibrate = isset($_POST['calibrate']) ? 'yes' : 'no' ; ?>

不需要使用java脚本,也可以通过php获得 作者:

如果仍然要使用JS,则可以使用.val()在输入中设置值,并可以通过post获得:

<?php echo $_post['checkbox_val']; ?>

<input type="hidden" id="checkbox_val" name="checkbox_val" >
<input type='checkbox' name='calibrate' onclick='OnChangeCheckbox(this), enable_text(this.checked)' id='myCheckbox' />

    function OnChangeCheckbox (checkbox) {
        if (checkbox.checked) {
            document.getElementById("val").innerHTML = "yes";
            document.getElementById("checkbox_val").val = "checked";
        }else {                                
            document.getElementById("val").innerHTML = "no";  
            document.getElementById("checkbox_val").val = "not_checked";                                              
        }
}

函数OnChangeCheckbox(复选框){
如果(复选框。选中){
document.getElementById(“val”).innerHTML=“是”;
document.getElementById(“checkbox_val”).val=“checked”;
}否则{
document.getElementById(“val”).innerHTML=“否”;
document.getElementById(“checkbox\u val”).val=“未选中”;
}
}

您需要将javascript中的值发送到php文件以进行保存。这可以使用ajax调用完成,如下所示:

function OnChangeCheckbox (checkbox) {
   var checkvalue="";
    if (checkbox.checked) {
        checkvalue = document.getElementById("val").innerHTML = "yes";
    }else {                                
        checkvalue = document.getElementById("val").innerHTML = "no";
    }

var xhr = new XMLHttpRequest();
var method="POST";
var url="url-of-your-php-file";
var data="checkvalue="+checkvalue;
xhr.open(method, url, true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = function() 
{ 
    if(xhr.readyState == 4 && xhr.status == 200) 
    { 
       //debugger;
       var response=xhr.responseText;                 
       if(response.indexOf('Error') !=-1)
       {
           alert("Error!");
       }
       else
       {
          alert("Data successfully sent!");                  

       }

    }
}

在您的php文件中,您可以从这里获得作为$u POST['checkvalue']发送的数据,然后,您可以使用它保存在数据库中。

什么是元素
#val
?当用户更改复选框时,您必须使用ajax将值发回。您必须将此代码放在javascript中,url变量具有要发布它的php文件的路径,它将输出“Data successfully sent!”在警报中,如果数据过账,则为“错误!”
function OnChangeCheckbox (checkbox) {
   var checkvalue="";
    if (checkbox.checked) {
        checkvalue = document.getElementById("val").innerHTML = "yes";
    }else {                                
        checkvalue = document.getElementById("val").innerHTML = "no";
    }

var xhr = new XMLHttpRequest();
var method="POST";
var url="url-of-your-php-file";
var data="checkvalue="+checkvalue;
xhr.open(method, url, true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = function() 
{ 
    if(xhr.readyState == 4 && xhr.status == 200) 
    { 
       //debugger;
       var response=xhr.responseText;                 
       if(response.indexOf('Error') !=-1)
       {
           alert("Error!");
       }
       else
       {
          alert("Data successfully sent!");                  

       }

    }
}