【问题标题】:save the value of checkbox to database将复选框的值保存到数据库
【发布时间】:2014-09-06 18:25:19
【问题描述】:

您好,我有复选框,然后我想使用 php 保存此复选框的值,但该值是使用 javascrip 生成的。如何使用 php 保存该值?

复选框:

<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:

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

【问题讨论】:

  • 元素#val是什么?
  • 当用户更改复选框时,您必须使用 ajax 将值发回。

标签: javascript php html checkbox


【解决方案1】:

尝试在您的流程操作中添加此行“在您的情况下使用 PHP INSTEAD 不需要 JAVASCRIPT”删除 javascript onclick

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

【讨论】:

    【解决方案2】:

    您需要将值从 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文件中你可以得到从这里发送的数据作为$_POST['checkvalue'],然后你可以用它来保存在数据库中。

    【讨论】:

    • 您必须将此代码放在您的 javascript 中,其中 url 变量具有您要发布的 php 文件的路径,它将输出“数据已成功发送!”如果数据被发布,则发出警报,否则“错误!”
    【解决方案3】:

    不需要使用java脚本,你也可以通过php获取 作者:&lt;?php echo isset($_POST[calibrate]) ? "checked" : "not checked"; ?&gt;

    如果您仍然想使用 JS,那么您可以使用 .val() 在输入中设置值并可以通过邮寄方式获取:

    <?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";                                              
            }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 2021-12-07
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      相关资源
      最近更新 更多