【问题标题】:Multiple radio button using php javascript ajax使用 php javascript ajax 的多个单选按钮
【发布时间】:2012-04-14 20:24:18
【问题描述】:

我正在制作一个带有多个单选按钮的调查表。 问题在数据库中,我选择问题并将选项显示为单选按钮

<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&lt;?php echo $i;?&gt;",它就不能工作。你能帮忙吗

【问题讨论】:

  • 你对这个while(list(...) = ...)循环是认真的吗?为什么不将它分配给一个数组/对象,然后使用那个?!以及为什么要手动构建 JavaScript 数组而不是使用 json_encode()
  • 你能检查一下这段代码生成的html吗............如果你没有发现错误,你可以把它粘贴在这里......我们可以看看它
  • 检查 [link]edumetric.in/disp.php?Area_ID=6&sort=Ranking&City_ID=2 中的投票部分,html 输出就在那里。我用问题作为单选按钮的名称
  • 当您按下提交按钮时,单击对任何学校进行投票我收到此错误无法读取未定义的“已检查”属性

标签: php html radio-button


【解决方案1】:

javascript for 循环应该从 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;
    }
}

【讨论】:

  • 仍然无法正常工作:(您可以在link中查看完整代码,在弹出的窗口中单击“投票”,然后按“提交”,您将看到错误。跨度>
  • 您忘记将i&lt;=5 更改为i&lt;5。它在第六个循环中抛出错误。
  • 非常感谢它的工作。我无法发现这个错误,这让我沮丧了好几个小时。现在它已经解决了,非常感谢
【解决方案2】:
<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;
                }
            }

【讨论】:

    猜你喜欢
    • 2014-07-26
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2012-01-07
    • 1970-01-01
    • 2013-07-18
    • 2014-08-26
    相关资源
    最近更新 更多