2014-11-05 7 views
0

여기 iframe이있는 페이지가 있습니다. iframe 내부에는 모든 질문이 객관식으로 표시됩니다. 문제는 iframe 내부에있는 선택된 라디오 버튼의 값을 모두 얻는 방법을 모르겠다는 것입니다. 버튼이 상위 페이지에 있습니다 (아직 포함되지 않았습니다).iframe에서 선택한 라디오 버튼의 값을 얻는 방법

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

    </iframe> 
</div> 

이 내 frame.php입니다 :

Webpage

이것은 questions.php에서 내 iframe이 코드입니다 :

내 페이지 (questions.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++; 
    } 
} 

나는 어제부터 이것을하고있다. 그러나 나는 그것을 얻지 않았다. 나는 그것을하는 방법을 모른다.

+0

iframe을 통해 양식을 포함하는 이유는 무엇입니까? –

+0

은 긴 페이지 (페이지 높이에서)를 방지하기 위해 스크롤 바를 가지고 있습니다. – Ejardy

+2

div 컨테이너를 사용하고 CSS를 통해 오버플로를 설정할 수 있습니다.나는 이것이 b/c라고 말하는 이유는 iframe에서 양식 데이터를 사용하는 것이 가능하지 않다고 생각합니다 (잘못된 것일 수도 있지만). 예 : http://jsfiddle.net/ankpbwk9/ –

답변

1

iframe에 id를 부여하고 해당 요소에 액세스 할 수 있습니다. abc이 라디오 버튼 요소입니다

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

.

그러면 요소로 원하는 작업을 수행 할 수 있습니다.

하지만 심각하게도 div에서 적절한 CSS를 사용하여 동일한 작업을 수행 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 체크 된 라디오 버튼을 확인하기 위해 PHP 코드를 본 적이 있습니까? 유용 할/내 iframe에서 작동합니까? – Ejardy

0

iframe이 양식 동작 때문에, 기본 동작은 GET 방식으로 현재 페이지에 양식을 제출해야 됩니다 양식 요소에 액션 속성을 추가 해달라고 iframe이 부모의 URL

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

해야한다 부모에게 게시 할 데이터를 보려고 할 때 데이터가 게시자 본인이 아닌 iframe에 게시 되었기 때문에 표시 할 내용이 없습니다.

그래서 메소드와 액션을 정의해야합니다.

0

모든 체크 박스에 같은 이름을 붙여야한다고 생각합니다. 그리고 당신은 질문 no를 할당 할 수 있습니다. 자신의 아이디에 대한

그래서 형태는

<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> 

그래서 우리는 간단한 조각을 사용하여 체크 박스 값을 얻을 수있을 것입니다.

<?php 

$values = $_POST['question']; 

// optional 

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

} 


?> 

아래 보여주는 시도하십시오이

관련 문제