2012-10-01 30 views
0

我想添加一個「檢查語句」基於已經輸入數據庫的用戶值。php echo從數據庫檢查

我已經設計了數據庫端爲q1,q2等,並有一個單一的varchar「a」,「b」或「c」。

我基本上想要代碼檢索答案,並將其作爲「選中」複選框,出於某種原因,我不能讓它工作。

到目前爲止我的代碼是:

<?php 
//retreive questions from database and put into question box 

$query2 = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`"; 

$question2 = mysql_query($query2); 

while($row = mysql_fetch_array($question2)){ 

    $id   = $row['QuestionId']; 
    $question = $row['Question']; 
    $opt1  = $row['Opt1']; 
    $opt2  = $row['Opt2']; 
    $opt3  = $row['Opt3']; 
    $opt4  = $row['Opt4']; 
    $answer  = $row["Answer"]; 

?> 
<div id="ContainerQuestion"> 
    <span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span> 

     <p><input type=radio name='q<?php echo $id; ?>' value="a"> <?php echo $opt1; ?> </p> 
     <p><input type=radio name='q<?php echo $id; ?>' value="b"> <?php echo $opt2; ?> </p> 
     <p><input type=radio name='q<?php echo $id; ?>' value="c"> <?php echo $opt3; ?> </p> 

     <p><input type=radio name='q<?php echo $id; ?>' value="d"> <?php echo $opt4; ?> </p> 


</div> 
<?php 
} 

?> 

我可以做,而函數內部查詢,只是有每個輸入類型說,如果($行=「A」 [「1」])回聲「檢查= '檢查'「;或者我錯了?

任何幫助將會很棒。 感謝

+0

你有什麼努力使它工作?當然,你所說的是可能的。 –

+0

什麼是錯誤? – thobens

+0

我在pf_questions表中有問題,並且我創建了另一個名爲pf_answers的表。我有一個user_id字段內每個錶鏈接到配置文件表,我的錯誤是,我怎麼能得到檢查作爲檢查內輸入標籤。 – user1611341

回答

0

更改單選按鈕:

<p><input type=radio name='q<?php echo $id; ?>' value="a" <?php echo ($row[1] == 'a') ? 'selected="selected"':''; ?>> <?php echo $opt1; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' value="b" <?php echo ($row[1] == 'b') ? 'selected="selected"':''; ?>> <?php echo $opt2; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' value="c" <?php echo ($row[1] == 'c') ? 'selected="selected"':''; ?>> <?php echo $opt3; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' value="d" <?php echo ($row[1] == 'd') ? 'selected="selected"':''; ?>> <?php echo $opt4; ?> </p> 
0

嘗試這種方式

<p><input type="radio" name="q<?php echo $id; ?>" value="a" <?php if($opt1=='a') echo "checked='checked'"; ?>><?php echo $opt1; ?> </p> 
+0

這將得到存儲,如果我點擊提交 - 我有一個JavaScript回去按鈕,不想存儲提交的值在Internet Explorer中。 – user1611341

+0

@ user1611341這是用於顯示目的,無論單擊哪個單選按鈕,您將獲得該值 – Sibu

+0

但我如何檢索值返回一旦用戶點擊JavaScript返回功能?在safari和Firefox的價值仍然存在,但在IE瀏覽器重置它,我需要存儲的價值,並得到它回 – user1611341

0

你可以簡單地檢查答案匹配的選項或無法使用

<?=($answer == 'a')?("checked='checked'"):(""); ?> 

如果答案與選項相同echo checked='checked'否則爲空字符串

的完整代碼

<?php 
    //retreive questions from database and put into question box 

    $query2 = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`"; 

    $question2 = mysql_query($query2); 

    while($row = mysql_fetch_array($question2)){ 

     $id   = $row['QuestionId']; 
     $question = $row['Question']; 
     $opt1  = $row['Opt1']; 
     $opt2  = $row['Opt2']; 
     $opt3  = $row['Opt3']; 
     $opt4  = $row['Opt4']; 
     $answer  = $row["Answer"]; 




    ?> 
    <div id="ContainerQuestion"> 
     <span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span> 

      <p><input type=radio name='q<?php echo $id; ?>' <?=($answer == 'a')?("checked='checked'"):(""); ?> value="a"> <?php echo $opt1; ?> </p> 
      <p><input type=radio name='q<?php echo $id; ?>' <?=($answer == 'b')?("checked='checked'"):(""); ?> value="b"> <?php echo $opt2; ?> </p> 
      <p><input type=radio name='q<?php echo $id; ?>' <?=($answer == 'c')?("checked='checked'"):(""); ?> value="c"> <?php echo $opt3; ?> </p> 

      <p><input type=radio name='q<?php echo $id; ?>' <?=($answer == 'd')?("checked='checked'"):(""); ?> value="d"> <?php echo $opt4; ?> </p> 


    </div> 
    <?php 
    } 

    ?> 

注意假設你的答案被存儲在$row["Answer"];是相同的選項(A,B,C,d)

1
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'a'?'checked="checked"':'' ?> value="a"> <?php echo $opt1; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'b'?'checked="checked"':'' ? value="b"> <?php echo $opt2; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'c'?'checked="checked"':'' ? value="c"> <?php echo $opt3; ?> </p> 
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'd'?'checked="checked"':'' ? value="d"> <?php echo $opt4; ?> </p> 
0

假設$answer字段是'a','b','c'或'd',這應該工作:

<p><input type=radio name='q<?php echo $id; ?>' value="a" <?php if($answer == 'a'){ echo "checked='checked'";} ?>> <?php echo $opt1; ?> </p>