2013-06-20 46 views
0

我無法讓我的update複選框功能正常工作。我需要能夠刪除或添加我選擇的checked到我的表中的值。代碼如下所示。複選框和Isset用PHP更新Mysql

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Name <input type"text" name="inputName" value="<?php echo $hemsida['Namn']; ?>" /> </br> 
Commentar <input type"text" name="inputComment" value="<?php echo $hemsida['Comment']; ?>" /> 
<br/> 
</br><input type="checkbox" name="all" value="<?php echo $hemsida['All']; ?>" 
<?php if($hemsida['All'] == 'checked') echo " checked"; ?> /> Alla 



<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" /> 
<input type="submit" name="submit" value="Redigera"> 
</form> 

和更新PHP看起來像這樣

if(isset($_POST['submit'])) { 
    $all = ($_POST['All'] == 1) ? "checked" : ""; 
    $u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`=$all WHERE ID = $_POST[id]"; 
    mysql_query($u) or die(mysql_error()); 

    echo "User has been modified"; 
    header("Location: ..//sokh.php"); 
} 

的錯誤是Undefined variable: hemsida上的所有部件。還有You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID = 33' at line 1。但我沒有問題的數據到Modifier或我應該叫它,但無法解決它。

回答!!!

我得到它的工作,但不能回答我自己的問題,所以我寫下來,我添加並刪除代碼,直到一切都崩潰了。刪除「$ all =($ _POST ['All'] == 1)?checked:;」部分,現在它的工作。我會複製代碼它的下面有一個興趣

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Name <input type"text" name="inputName" value="<?php echo $hemsida['Namn']; ?>" /> </br> 
Commentar <input type"text" name="inputComment" value="<?php echo $hemsida['Comment']; ?>" /> 
<br/> 
<input type="checkbox" name="all" value="checked" <?php if($hemsida['All'] == 'checked') echo "checked=\"checked\""; ?>/> Alla 
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" /> 
<input type="submit" name="submit" value="Redigera"> 
</form> 

新的PHP

if(isset($_POST['submit'])) { 
    $u = "UPDATE hemsida SET `Comment`='$_POST[inputComment]', `Namn`='$_POST[inputName]', `All`='$_POST[all]' WHERE ID = $_POST[id]"; 
    mysql_query($u) or die(mysql_error()); 

    echo "User has been modified"; 
    header("Location: ..//sokh.php"); 
} 
+0

在你的sql語法中,$ _POST應該在大括號內,如'{$ _POST ['inputName']}' –

+1

_Insert mustatory「請使用['mysqli'](http:// php.net/manual/en/book.mysqli.php)而不是'mysql'「comment here_ – jterry

+0

」Undefined variable:hemsida「表示在嘗試使用它之前,您沒有定義名爲'$ hemsida'的變量。 – Joni

回答

1
  1. 似乎$ hemsida不可用在你的代碼這一點,但你正在使用它。
  2. 未檢查時,輸入類型=「複選框」不會顯示在$ _POST中。 ,使用isset。

旁註:您使用的是XHTML?正確的檢查類型= checked="checked"