2011-05-10 48 views
0

我想在網頁(用php編寫)上表示「是」和「否」的兩個單選按鈕。當我加載頁面時,我希望它從MySQL數據庫獲取一個值並設置相應的單選按鈕。當我點擊另一個按鈕時,我希望它更新數據庫並重新加載頁面。以HTML格式設置單選按鈕的mysql值

我想用一個簡單的html表單來做到這一點,但沒有運氣。我至今(即不工作的代碼:(是:

if (!isset($_POST['submit'])) { 
    $sql = "SELECT challenge_me FROM contestants WHERE id=$id"; 
    $res = (mysql_fetch_assoc(mysql_query($sql, $db))); 
    $challenge_me = $res["challenge_me"]; 

}else{ 
    $sql = "UPDATE contestants SET challenge_me='" . $_POST['YesNo'] . "' WHERE id='$id'"; 
    if(!mysql_query($sql, $db)) 
     echo mysql_error(), "<br/>Query '$sql'"; 
    $challenge_me = $_POST['YesNo']; 
} 

    echo'<form method="post" action="' . $PHP_SELF . '">'; 
    echo '<input type="hidden" name="submit" value="submit">';   
if($challenge_me == 1){ 
    echo'<input type="radio" name="YesNo" value="1" onClick="this.form.submit();" checked>Yes '; 
    echo'<input type="radio" name="YesNo" value="0" onClick="this.form.submit();">No '; 
}else{ 
    echo'<input type="radio" name="YesNo" value="1" onClick="this.form.submit();">Yes '; 
    echo'<input type="radio" name="YesNo" value="0" onClick="this.form.submit();" checked>No '; 
} 
echo'</form>'; 

+1

不是您的問題的答案,但您不應該使用字符串連接來構建SQL查詢。您的腳本當前容易受到SQL注入攻擊,基於使用'$ _POST ['YesNo']'沒有至少逃脫它或使用MySQL語句 – Rob 2011-05-10 22:09:13

+0

它怎麼不工作?發生了什麼? – thefugal 2011-05-10 22:12:40

+0

嗯,似乎我解決了它。它不工作,如果隱藏的帖子被命名爲「提交「當我點擊rad時,阻止了表單做任何事情io按鈕。將其重命名爲其他方式運行良好... 並感謝關於sql注入的評論! – faximan 2011-05-11 05:41:26

回答

1

你的腳本似乎沒有明確的$ id,哪裏的$ id從得到它的價值這可能是你的問題的根源?您的腳本可能不會在$ id中傳遞任何值

+0

也是,我假設$ PHP_SELF是空白的。我認爲你正在嘗試使用$ _SERVER ['PHP_SELF']。這可能不會影響代碼,因爲將操作留空會自動將表單提交給自己。 – dqhendricks 2011-05-10 22:54:44

+0

嗯,$ id作爲函數的參數(我刪除了幾行代碼,我認爲這對我的問題並不有趣)。 – faximan 2011-05-11 05:19:01

+0

@faximan你解決了這個問題了嗎?你有沒有試過@dqhendricks建議,那是另一個可能的原因 – boug 2011-05-11 12:30:34