0

複数のラジオボタンでアンケートフォームを作成しています。質問はデータベースにあり、質問と表示オプションをラジオボタンとして選択します

<div id="question">
    <form id="pollform">;
<?php
    $i=0;
    while(list($ID,$Question,$form,$one,$two,$three,$four,$five)=mysql_fetch_array($result)){
        $i++; 
?>
        <p><?php echo $ID.") ".$Question; ?></p>
        <input type="radio" name="radio<?php echo $i;?>" value="1" /> <?php echo $one; ?><br />
        <input type="radio" name="radio<?php echo $i;?>" value="2" /> <?php echo $two; ?><br />
        <input type="radio" name="radio<?php echo $i;?>" value="3" /> <?php echo $three; ?><br />
        <input type="radio" name="radio<?php echo $i;?>" value="4" /> <?php echo $four; ?><br />
        <input type="radio" name="radio<?php echo $i;?>" value="5" /> <?php echo $five; ?><br />
<?php 
    } 
?>
    <input type="button" id="review-submit" value="Submit" onclick="pollsubmit();">
    <form>
</div>

これを処理し、Ajax を使用して選択した回答を送信するには、次のコードを使用しました

<script language=Javascript>
function pollsubmit(){
<?php
    $dbquerry="SELECT `ID`, `Question`, `Form`, `one`, `two`,`three`,`four`,`five` FROM `pollquestions` Order by `ID`";
    $result=mysql_db_query($dbname,$dbquerry);
?>
    var answers = new Array();
    var form1=document.getElementById("pollform");
<?php
    $count=0;
    while(list($ID,$Question,$form,$one,$two,$three,$four,$five)=mysql_fetch_array($result)){
        $count++;
?>
        for (var i=1;i<=5;i++) {
            if(form1.radio<?php echo $count;?>[i].checked) {
                answers[<?echo $ID;?>]= form1.radio<?php echo $count;?>.value;
            }
        }
<?php 
    }
?>
}
</script>

しかし、これはCannot read property 'checked' of undefined両方の場所で名前がradio1であるにもかかわらず、私に与えています. たとえば、文字列のみを使用するname="radio1"と機能しますが、使用name="radio<?php echo $i;?>"すると機能しません。親切に助けてもらえますか

4

2 に答える 2

0
<script language=Javascript>
function pollsubmit(){
<?php
    $dbquerry="SELECT `ID`, `Question`, `Form`, `one`, `two`,`three`,`four`,`five` FROM `pollquestions` Order by `ID`";
    $result=mysql_db_query($dbname,$dbquerry);
?>
    var answers = new Array();
    var form1=document.getElementById("pollform");
<?php
    $count=0;
    while(list($ID,$Question,$form,$one,$two,$three,$four,$five)=mysql_fetch_array($result)){
        $count++;
?>
        for (var i=1;i<=5;i++) {
            if(form1.['radio<?php echo $count;?>'][i].checked) {
                answers[<?echo $ID;?>]= form1.['radio<?php echo $count;?>'].value;
            }
        }
<?php 
    }
?>
}
</script>

編集:

for (var i=1;i<=5;i++) {
                if(form1.['radio<?php echo $count;?>'][i].checked) {
                    answers[<?echo $ID;?>]= form1.['radio<?php echo $count;?>'].value;
                }
            }
于 2012-04-14T12:24:18.367 に答える
0

ループの JavaScript は 0 から開始する必要があります。値には [i] が必要です。

for (var i=0;i<5;i++) {
    if(form1.radio<?php echo $count;?>[i].checked) {
        answers[<?echo $ID;?>]= form1.radio<?php echo $count;?>.value;
    }
}
于 2012-04-14T09:45:49.120 に答える