2017-09-29 13 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> 

を無効にする必要があり、これは、ユーザが、これはsave.phpたときに、ユーザーである

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

クリックしますラジオボタンでラジオボタンをクリックしてください

<?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)' 

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

function getVote(int) 

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

に変更
onclick='getVote(this)' 

に行を追加します

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

私はこれを試しましたが、まだ動作していませんが、あなたに感謝してくれてありがとう!多分それは働いているか、それともフォームを提出しているのかもしれないし、フォームが送信されたときにそれが爽やかだと思うので、ディセーブルは消えますか? –

+0

@KosakiOnodera、AJAX呼び出しが呼び出された後で、ページをリロードしていたコードを覚えていませんでした。これがAJAXの目的を破っているのを知っていましたか?ページをリロードする場合は、フォームをsave.phpに送信するだけです。 – jeff

+0

うーん、私は知りません。あなたもそれで私を助けることができますか? –

0

無効にするには、disableプロパティをtrueに設定し、elseを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/

関連する問題