2017-09-29 97 views
1

我試圖研究並嘗試了很多選項,但仍然無法正常工作。用戶後,點擊單選按鈕並確認我需要禁用單選按鈕確認後禁用單選按鈕

<script type="text/javascript"> 
    function getVote(int) { 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 

    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    if (confirm("Your vote is for " + int)) { 

     xmlhttp.open("GET", "save.php?vote=" + int, true); 
     xmlhttp.send(); 
     window.location.reload(); 

    } else { 
     alert("Choose another candidate "); 
    } 

    } 

    function getPosition(String) { 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.open("GET", "vote.php?position=" + String, true); 

    xmlhttp.send(); 

    } 
</script> 

,這是單選按鈕,用戶會點擊

 echo "<td><input type='radio' name='vote' value='$row[candidate_name]' onclick='getVote(this.value)' /></td>"; 

這是save.php當用戶單擊單選按鈕

<?php 
     require('connection.php'); 
     $vote = $_REQUEST['vote']; 

    $checkposition=mysql_query("SELECT candidate_position FROM voting_tbCandidates WHERE candidate_name='$vote'"); 
    while ($row=mysql_fetch_array($checkposition)){ 
    session_start(); 

    if($row['candidate_position']=="PRESIDENT"){ 
    $_SESSION['vote_president']=$row['candidate_position']; 
    }elseif($row['candidate_position']=="VICE"){ 
    $_SESSION['vote_vice']=$row['candidate_position']; 
    }elseif($row['candidate_position']=="MUSE"){ 
    $_SESSION['vote_muse']=$row['candidate_position']; 
    }elseif($row['candidate_position']=="SECRETARY"){ 
    $_SESSION['vote_secretary']=$row['candidate_position']; 
    }elseif($row['candidate_position']=="ESCORT"){ 
    $_SESSION['vote_escort']=$row['candidate_position']; 
    }elseif($row['candidate_position']=="AUDITOR"){ 
    $_SESSION['vote_auditor']=$row['candidate_position']; 
     } 
     } 
    mysql_query("UPDATE voting_tbCandidates SET candidate_cvotes=candidate_cvotes+1 WHERE candidate_name='$vote'"); 

mysql_close($con); 
    ?> 
+0

會你顯示你的'save.php'和完整的html文件? –

+0

獲得投票後,你正在重新加載一個頁面,所以你必須檢查那裏你有投票「$ row [candidate_name]」比讓它禁用,否則啓用。 –

+0

我更新我的問題先生@B。 Desai –

回答

0

您只是將值發送回該函數。將整個元素髮送到函數並挑選出需要的部分會更容易。例如: 變化

onclick='getVote(this.value)' 

onclick='getVote(this)' 

變化

function getVote(int) 

function getVote(obj) { 
    var int = obj.value; 

xmlhttp.open("GET", "save.php?vote=" + int, true);之前添加行

obj.setAttribute('disabled','disabled'); // I think this would work 
+0

我試過這個,但還是不行,但是謝謝你回答先生!也許它的工作或可能是因爲它提交表單,我認爲當表單提交時令人耳目一新,因此禁用將會消失? –

+0

@KosakiOnodera,我錯過了你在調用AJAX調用之後重新加載頁面的代碼。你知道這打敗了AJAX的目的嗎?如果您想要重新加載頁面,只需將表單提交到save.php。 – jeff

+0

嗯,我不知道先生。你能幫助我嗎? –

0

將disable屬性設置爲true,否則設置爲false。

修改功能應該是這個樣子

function getVote(obj) { 
var int = obj.value; 
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 

} else { // code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

if (confirm("Your vote is for " + int)) { 
    obj.disabled = true; 
    //xmlhttp.open("GET","save.php?vote="+int,true); 
    //xmlhttp.send(); 
    // window.location.reload(); 

} else { 
    obj.disabled = false; 
    alert("Choose another candidate "); 
} 

}

和函數調用期間通過輸入元素的對象

<td> 
    <input type='radio' name='vote' value='45' onclick='getVote(this)'/> 
</td> 

這裏是工作提琴:https://jsfiddle.net6mcd5bq7/