【问题标题】:How to get the values of the checked radio button in iframe如何在 iframe 中获取选中的单选按钮的值
【发布时间】:2014-11-05 06:32:56
【问题描述】:

我在这里有一个带有 iframe 的页面。在 iframe 内,它将以多项选择显示所有问题。问题是我不知道如何获取 iframe 内选中的单选按钮的所有值。该按钮在父页面中(我还没有包含它)。

这是我的页面(questions.php)的屏幕截图:

这是我在 questions.php 中的 iframe 代码:

<div class="question-display test">
     <iframe src="questions/frame.php" height="500px" width="100%">

     </iframe>
</div>

这是我的 frame.php(显示所有问题)

<?php
                include('config.php');
                $view_questions=mysql_query("SELECT * FROM questions ORDER BY RAND()");
                $count=mysql_num_rows($view_questions);
                    $i=1;
                    while($row=mysql_fetch_array($view_questions))
                    {

                ?>
        <div class="questions-contents text-size test" style="margin-left: 10px;">
            <p align="justify"><strong><?php echo $i;?>.)</strong> <?php echo $row['QUESTION'];?></p>
        </div>


        <div class="answer-indent" style="margin-left: 40px; margin-bottom: 20px;">    
            <label class="radio">
                <input type="radio" name="<?php echo $row['QUESTION_NO'];?>" value="1" data-toggle="radio">
                <class="color" style="color: gray;"><?php echo $row['ANSWER_1'];?></class="color">
            </label>

            <label class="radio">
                <input type="radio" name="<?php echo $row['QUESTION_NO'];?>" value="2" data-toggle="radio">
                <class="color" style="color: gray;"><?php echo $row['ANSWER_2'];?></class="color">
            </label>
            <label class="radio">
                <input type="radio" name="<?php echo $row['QUESTION_NO'];?>" value="3" data-toggle="radio">
                <class="color" style="color: gray;"><?php echo $row['ANSWER_3'];?></class="color">
            </label>

            <label class="radio">
                <input type="radio" name="<?php echo $row['QUESTION_NO'];?>" value="4" data-toggle="radio">
                <class="color" style="color: gray;"><?php echo $row['ANSWER_4'];?></class="color">
            </label>

            <label class="radio" style="display: none;" >
                <input type="radio" name="<?php echo $row['QUESTION_NO'];?>" value="5" data-toggle="radio" checked>

            </label>
        </div>
            <?php
                    $i++; }
            ?>

在我将我的 frame.php 从 questions.php 页面插入 iframe 之前,我有一个用于检查用户答案的​​ php 代码(选中的单选按钮)。

$questions = mysql_query("SELECT * FROM questions");
while($row=mysql_fetch_assoc($questions)){
    if($_POST[$row['QUESTION_NO']]==$row["ANSWER"])
    {
        $score++;
    } 
    elseif($_POST[$row['QUESTION_NO']]==5)
    {
        $unanswered++;
    }
    else
    {
        $wrong_score++;
    }
}

请帮帮我,我从昨天开始就这样做了,但我没有得到它。我不知道该怎么做。

【问题讨论】:

  • 通过 iframe 包含表单的原因是什么?
  • 具有滚动条以防止页面过长(以页面高度计)。
  • 您可以使用 div 容器并通过 CSS 设置溢出。我这么说的原因是 b/c 我认为不可能使用 iframe 中的表单数据(尽管我可能是错的)。例如:jsfiddle.net/ankpbwk9
  • @Melissa 非常感谢您的建议。这就是我要找的。我使用 iframe 是因为我认为这是拥有滚动条的唯一方法,而且我从不怀疑是否还有其他方法。上帝祝福你! :)
  • 我没有看到你有表单元素,你应该有它并定义它使用的操作和方法,所以它会使用正确的方法发布数据并到当前页面。

标签: php jquery html iframe radio-button


【解决方案1】:

您可以为 iframe 提供 id 并访问其元素。

document.getElementById('frameid').contentWindow.document.getElementById('abc')

abc 是您的单选按钮元素。

然后你可以对元素做任何你想做的事情。

但是说真的,你也可以在 Div 中使用适当的 css 来做同样的事情。

【讨论】:

  • 感谢您的回答。你看过我的 php 代码来检查选中的单选按钮吗?这对我的 iframe 有用/有用吗?
【解决方案2】:

我认为您应该为所有复选框指定相同的名称。你可以分配问题号。为他们的 id

所以表格会是

    <div class="answer-indent" style="margin-left: 40px; margin-bottom: 20px;">    
                <label class="radio">
                    <input type="radio" name="question" id="<?php echo $row['QUESTION_NO'];?>" value="1" data-toggle="radio">
                    <class="color" style="color: gray;"><?php echo $row['ANSWER_1'];?></class="color">
                </label>

<label class="radio">
                <input type="radio" name="question" id="<?php echo $row['QUESTION_NO'];?>" value="2" data-toggle="radio">
                <class="color" style="color: gray;"><?php echo $row['ANSWER_2'];?></class="color">
            </label>
    .
    .
    .
    .
    </div>

所以我们可以使用简单的 sn-p 来获取复选框的值。 如下所示

<?php

$values = $_POST['question'];

// optional

foreach ($values as $selected){
echo $selected."<br />";

}


?>

请试试这个

【讨论】:

    【解决方案3】:

    iframe 表单操作应该是 iframe 父 url

    <form action="parenturl.php" method="POST">
    

    当您不将 action 属性添加到表单元素时,默认操作将 通过 GET 方法将表单提交到当前页面,因此当您尝试 查看父项中的发布数据 没有什么可显示的,因为数据已发布到 iframe 本身而不是父级。

    所以请确保您定义了方法和操作。

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2012-07-18
      • 2013-04-08
      • 2021-06-26
      相关资源
      最近更新 更多