2010-11-16 111 views
0

我試圖創建一個PHP/MySQL的測驗時動態生成的單選按鈕形式...提交不顯示數據

我已創建了答案單選按鈕形式顯示從數據庫中取出的數據作爲單選按鈕的值。我試圖提交表單,但結果頁面沒有顯示任何內容。

我測驗的代碼去如下:提交頁面

<form method="post" action="insertscore.php" name="cssCheckbox" id = "cssCheckbox"> 
<?php $query = "SELECT * FROM questions WHERE (`topics` = '.NET' OR `topics` = 'PHP') ORDER BY Rand() LIMIT 5"; $result = mysql_query($query); 

if ($result && mysql_num_rows($result)) { 
    $numrows = mysql_num_rows($result); 
$count =1; 

while ($row = mysql_fetch_array($result)) 
{ 
?> 

<div class="group"> 
<input type="hidden" name="<?php echo $row['key_id']; ?>"><?php $row['key_id']; ?></input> 
<span class="test_question"><strong><?php echo $count;?>) <?php echo $row['question']; ?> 
</strong><br /> 

<?php if($row['answer1'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer1']; ?>" id="chkLimit_1" ></input> 
<label for="chkLimit_1" ><?php echo $row['answer1']; echo "<br />"; } else {} ?></label> 


<?php if($row['answer2'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer2']; ?>" id="chkLimit_2" ></input> 
<label for="chkLimit_2" ><?php echo $row['answer2']; echo "<br />"; } else {} ?></label> 

<?php if($row['answer3'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer3']; ?>" id="chkLimit_3" ></input> 
<label for="chkLimit_3" ><?php echo $row['answer3']; echo "<br />"; } else {} ?></label> 

<?php if($row['answer4'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer4']; ?>" id="chkLimit_4" ></input> 
<label for="chkLimit_4" ><?php echo $row['answer4']; echo "<br />"; } else {} ?></label> 

<?php if($row['answer5'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer5']; ?>" id="chkLimit_5" ></input> 
<label for="chkLimit_5" ><?php echo $row['answer5']; echo "<br />"; } else {} ? ></label> 

<?php if($row['answer6'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer6']; ?>" id="chkLimit_6" ></input> 
<label for="chkLimit_6" ><?php echo $row['answer6']; echo "<br />"; } else {} ?></label> 

<?php if($row['answer7'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer7']; ?>" id="chkLimit_7" ></input> 
<label for="chkLimit_7" ><?php echo $row['answer7']; echo "<br />"; } else {} ?></label> 

<?php if($row['answer8'] != NULL){ ?> 
<input type = "radio" name="answers" value="<?php echo $row['answer8']; ?>" id="chkLimit_8" ></input> 
<label for="chkLimit_8" ><?php echo $row['answer8']; echo "<br />"; } else {} ?></label> 

<input type="hidden" name="<?php echo $row['right_answer']; ?>"><?php $row['right_answer']; ?></input> 
</div> 
<input name="Submit" type="submit" value="Submit Your Answers" class="submit"> 

</form> 

代碼如下所示:

<?php 

if(isset($_POST['Submit'])){ 

$key_id=$_POST['key_id']; echo $key_id; 

$question=$_POST['question']; echo $question; 

$answers=$_POST['answers']; echo $answers; 

$correctanswer=$_POST['correctanswer']; echo $correctanswer; 

} 


foreach($_POST as $key => $val) 
{ 
echo "$key --> $val<br />"; 
} 


//var_dump($_POST); 
?> 

請讓我知道如果有什麼不明確或者如果我缺少什麼? 。

感謝,

+0

你確定'insertscore.php',我認爲是上面顯示的最後一個代碼片段是「沒有顯示任何東西的結果頁」?你能告訴我們結果頁面的HTML源嗎? – stillstanding 2010-11-16 19:34:19

+0

@stillstanding:我很驚訝你要求看到更多的代碼,而不是他已經寫在那裏的所有東西。 :) – 2010-11-16 19:53:35

+0

@stillstanding:在結果頁上我試圖顯示提交的表單的返回值,這是由foreach完成的... – Shank 2010-11-17 02:33:16

回答

1

我想:

  1. 刪除評論//var_dump($_POST);並在代碼的頂部上提交頁移動這條線。

  2. 如果您仍然看不到任何東西,我認爲提交頁面上的代碼不在insertscore.php文件中,或者此文件不在您的表單頁面的同一文件夾中。

+0

Marco:Ty的評論... 1)我會讓你知道,我嘗試了上述事情後。 .. 2)第二個塊中的代碼位於與表單頁面位於同一文件夾中的insertscore.php文件中。 – Shank 2010-11-17 02:39:54

+0

我嘗試將var_dump移動到頁面頂部,並將結果設置爲零除了最後一個答案之外的答案(顯示正確.. – Shank 2010-11-17 14:46:25