2013-02-11 148 views
2

對於每一個問題,我想在那裏通過每個問題檢查,編譯if聲明如果.ReplyType文本輸入等於Single,那麼用戶只能選擇一個複選框按鈕選項,否則如果.ReplyType文本輸入等於Multiple,則用戶可以選擇多個複選框按鈕選項。如何選擇單個或多個複選框按鈕?

我的問題是如何根據.ReplyType文本輸入選擇單個按鈕或多個按鈕來執行此操作?在PHP或JavaScript中更好嗎?

下面是相關代碼:

<form action='results.php' method='post' id='exam'> 

    <?php 

//COMPILE OPTION BUTTONS 

    function ExpandOptionType($option) { 
     $options = explode('-', $option); 
     if(count($options) > 1) { 
      $start = array_shift($options); 
      $end = array_shift($options); 
      do { 
       $options[] = $start; 
      }while(++$start <= $end); 
     } 
     else{ 
      $options = explode(' or ', $option); 
     } 

     foreach($options as $indivOption) { 
      echo '<div class="ck-button"><label class="fixedLabelCheckbox"><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><span>' . $indivOption . '</span></label></div>'; 
     } 


    } 


    foreach ($arrQuestionId as $key=>$question) { 

    ?> 

    <div class="queWrap"> 

//DISPLAY QUESTION NUMBER FOR EACH QUESTION 
    <p><?php echo htmlspecialchars($arrQuestionNo[$key]);?></p> 

//DISPLAY OPTION CHECKBOX BUTTONS FOR EACH QUESTION 
    <?php echo ExpandOptionType(htmlspecialchars($arrOptionType[$key])); ?> 

//DISPLAY REPLY TYPE TEXT INPUT FOR EACH QUESTION 
    <p>Reply Type: <input type='text' class='replyType' name='replytype' value='<?php echo htmlspecialchars($arrReplyType[$key]); ?>' /></p> 



    </div> 


    <?php 

    } 

    ?> 
+5

對於單個你會使用PHP來輸出''不是複選框,你不會涉及javascript – Popnoodles 2013-02-11 00:20:02

+0

@popnoodles所以你說在PHP中,如果問題是答覆類型是單一的,使它單選按鈕,如果多個使複選框? – user2056342 2013-02-11 00:30:32

+0

@Mörre是啊,我剛剛發現之前,你發佈你的評論。沒有想到:) – user2056342 2013-02-11 00:31:06

回答

0

你應該都做,JavaScript和PHP實現。

在提交表單之前,JavaScript更適合用戶獲得響應。

PHP很重要,因爲JavaScript驗證可以繞過(只是停用JavaScript),在這種情況下,您的PHP仍應驗證您獲得的是一致的數據。

無論如何:使用單選按鈕和複選框進行多選。並不是說它已經在每個瀏覽器中實現了,並且意圖以這種方式使用,大多數用戶已經學會了這種行爲,並且不會爲您的JavaScript(或PHP)驗證感到驚訝。

相關問題