2014-09-06 66 views
-2

嗨,我有複選框,然後我想保存這個複選框使用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:

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

元素'#val'是什麼? – hjpotter92 2014-09-06 08:56:07

+0

當用戶更改複選框時,必須使用ajax將值發回。 – adeneo 2014-09-06 09:05:26

回答

1

嘗試和你的過程中行動加入這一行 「DONOT需要啓動JavaScript在您的情況使用PHP的INSTEAD」 刪除的JavaScript的onclick

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

不需要使用java腳本,你也可以通過php 人:<?php echo isset($_POST[calibrate]) ? "checked" : "not checked"; ?>

如果你仍然想使用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";            
     } 
} 
1

你需要從JavaScript送價值一個PHP文件來保存it.This可以做到使用作爲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 [「校驗值」],那麼你可以使用它保存在數據庫中。

+0

我應該在哪裏放這個代碼? – KENN 2014-09-08 06:29:15

+0

或它如何工作?我嘗試這個,但它什麼都不做? – KENN 2014-09-08 06:31:01

+0

您必須將此代碼放入您的javascript中,並將URL代碼放置到要發佈的PHP文件的路徑中,它將輸出「Data successfully sent!」。如果數據被髮布則處於警報狀態,否則「錯誤!」 – shine 2014-09-15 10:35:16