2015-10-28 16 views
2

Я пытаюсь создать онлайн-тест личности для клиента. У меня возникают проблемы с элементами формы, обновленными таблицей так, как мне бы хотелось. На странице есть восемь разных цветовых квадратов с элементом формы выбора под каждым квадратом и значениями параметра между 1 и 25. Когда пользователь выбирает значение (наиболее предпочтительным является 25, а 1 - наименее для этого цвета), есть таблица ниже цветов с две строки из 25 квадратов, которые я хотел бы обновить на основе выбора. Например, для первого селектора цвет является темно-зеленым, если пользователь должен был выбрать номер 22, я хотел бы, чтобы ячейка под ячейкой, помеченной 22, стала темно-зеленой. Кроме того, пользователь должен иметь возможность выбирать только определенное значение только один раз, поскольку одному и тому же номеру не может быть назначено несколько цветов. Любая помощь приветствуется.изменение содержимого html на основе ввода формы

<img value="4" src="sft/images/color4.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="2" src="sft/images/color2.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="3" src="sft/images/color3.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="1" src="sft/images/color1.jpg" draggable="true" ondragstart="drag(event)"> 
    <form name="colorselect" action="#"> 
     <select name="color4" style="width:150px; margin-bottom: 10px; background-color: #0f6700; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select> 
     <select name="color2" style="width:150px;margin-bottom: 10px; background-color: #701b55; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select> 
     <select name="color3" style="width:150px;margin-bottom: 10px; background-color: #ee8400; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select> 
     <select name="color1" style="width:150px;margin-bottom: 10px; background-color: #00243c; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select> 

    <img value="6" src="sft/images/color6.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="5" src="sft/images/color5.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="7" src="sft/images/color7.jpg" draggable="true" ondragstart="drag(event)"> 
    <img value="8" src="sft/images/color8.jpg" draggable="true" ondragstart="drag(event)"> 
     <select name="color6" style="width:150px;margin-bottom: 10px; background-color: #74bf12; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select>  
     <select name="color5" style="width:150px;margin-bottom: 10px; background-color: #b00917; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select>  
     <select name="color7" style="width:150px;margin-bottom: 10px; background-color: #000000; color: #ffffff"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select>  
     <select name="color8" style="width:150px;margin-bottom: 10px; background-color: #FFFFFF"> 
     <option value="">&nbsp;</option> 
     <?php 
      $option = '1'; 
      while ($option <= '25'){ 
       echo '<option value=/"'.$option.'">'.$option.'</option>'; 
       $option ++; 
      } 
     ?> 
     </select> 
    </form> 

    <table id="sftTable"> 
    <tr> 
     <td colspan="5" style="border-top:none;border-right:none;border-left:none">Strong Like</td> 
     <td colspan="5" style="border-top:none;border-right:none;border-left:none">Like</td> 
     <td colspan="5" style="border-top:none;border-right:none;border-left:none">Nuetral</td> 
     <td colspan="5" style="border-top:none;border-right:none;border-left:none">Dislike</td> 
     <td colspan="5" style="border-top:none;border-right:none;border-left:none">Strong Dislike</td> 
    </tr> 
    <tr> 
    <?php $count = '25'; 
     while ($count >= '1') { 
      echo '<td width=/"30px/">'.$count.'</td>'; 
      $count --; 

     } 
     ?> 
    </tr> 
    <tr height="30px"> 
     <?php $count = '25'; 
     while ($count >= '1') { 
      echo '<td width=/"30px/" id=/"'.$count.'">&nbsp;</td>'; 
      $count --; 

     } 
     ?> 
    </tr> 
    </table> 

ответ

1

Попробуйте этот код ..

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script> 
    function selectRange(elem,val) 
    { 
    var color = $("#"+elem).css("background-color"); 
    var color2 =$("#change"+val).css("background-color"); 
     if(color2=='transparent') 
     { 
     $("#change"+val).css("background-color", color); 
     } 
     else 
     { 
      alert("Already Color Set"); 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <form name="colorselect" action="#"> 
    <select name="color1" id="color1" onchange="selectRange(this.id,this.value);" style="width:150px; margin-bottom: 10px; background-color: #0f6700; color: #ffffff"> 
    <option value="">&nbsp;</option> 
    <?php 
     $option = '1'; 
     while ($option <= '5'){ 
      echo '<option value="'.$option.'">'.$option.'</option>'; 
      $option ++; 
     } 
    ?> 
    </select> 
    <select name="color2" id="color2" onchange="selectRange(this.id,this.value);" style="width:150px;margin-bottom: 10px; background-color: #701b55; color: #ffffff"> 
    <option value="">&nbsp;</option> 
    <?php 
     $option = '1'; 
     while ($option <= '5'){ 
      echo '<option value="'.$option.'">'.$option.'</option>'; 
      $option ++; 
     } 
    ?> 
    </select> 
    <select name="color3" id="color3" onchange="selectRange(this.id,this.value);" style="width:150px;margin-bottom: 10px; background-color: #ee8400; color: #ffffff"> 
    <option value="">&nbsp;</option> 
    <?php 
     $option = '1'; 
     while ($option <= '5'){ 
      echo '<option value="'.$option.'">'.$option.'</option>'; 
      $option ++; 
     } 
    ?> 
    </select> 
    <select name="color4" id="color4" onchange="selectRange(this.id,this.value);" style="width:150px;margin-bottom: 10px; background-color: #b00917; color: #ffffff"> 
    <option value="">&nbsp;</option> 
    <?php 
     $option = '1'; 
     while ($option <= '5'){ 
      echo '<option value="'.$option.'">'.$option.'</option>'; 
      $option ++; 
     } 
    ?> 
    </select> 
    <select name="color5" id="color5" onchange="selectRange(this.id,this.value);" style="width:150px;margin-bottom: 10px; background-color: #000000; color: #ffffff"> 
    <option value="">&nbsp;</option> 
    <?php 
     $option = '1'; 
     while ($option <= '5'){ 
      echo '<option value="'.$option.'">'.$option.'</option>'; 
      $option ++; 
     } 
    ?> 
    </select> 

    </form> 

    <table id="sftTable"> 
    <tr> 
    <td style="border-top:none;border-right:none;border-left:none">Strong <br/>Like</td> 
    <td style="border-top:none;border-right:none;border-left:none">Like</td> 
    <td style="border-top:none;border-right:none;border-left:none">Nuetral</td> 
    <td style="border-top:none;border-right:none;border-left:none">Dislike</td> 
    <td style="border-top:none;border-right:none;border-left:none">Strong<br/> Dislike</td> 
    </tr> 
    <tr> 
    <?php $count = '5'; 
    while ($count >= '1') { 
     echo '<td width="30px" style="" id="change'.$count.'">'.$count.'</td>'; 
     $count --; 
    } 
    ?> 
    </tr> 

    </table></body> 
    </html> 
+0

удивительным! Спасибо за помощь! – keycrew

+0

saravanan mp, еще раз спасибо за ответ. Это именно то, что я искал. В ходе дальнейшего тестирования я обнаружил новую проблему, о которой я не думал, если пользователь выбирает и выбирает, а затем меняет свое мнение, исходный выбор остается выбранным цветом, а также новым. Есть ли у вас предложение о том, чтобы сделать оригинальный выбор понятным? – keycrew

+0

@keycrew вы можете объяснить четко. Я не понимаю, чего вы хотите. Также примите ответ. –

0

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
    <script> 
 

 
//added variable that is defined by onfocus to pass previously selected value 
 
\t function selectRange(elem,val,oldval) 
 
    { 
 
    var color = $("#"+elem).css("background-color"); 
 
    var color2 =$("#change"+val).css("background-color"); 
 
     if(color2=='transparent') 
 
     { 
 
\t //resets background of previously selected value before changing to new selection 
 
     $("#change"+oldval).css("background-color", "transparent"); 
 
     $("#change"+val).css("background-color", color); 
 
     } 
 
     else 
 
     { 
 
      $("#change"+oldval).css("background-color", "transparent"); 
 
      $("#change"+oldval).value(oldval); 
 
\t \t \t alert("Already Color Set"); 
 
\t \t \t 
 
\t \t \t // need to reset the value of dropdown that was selected to prevent clearing of previous entry 
 
     } 
 
    } 
 
\t 
 
    </script>
<div style="clear:both"> 
 
\t \t <img value="4" src="sft/images/color4.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t <img value="2" src="sft/images/color2.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t <img value="3" src="sft/images/color3.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t </div> 
 
<div style="clear:both; margin: 0px auto 10px auto;"> 
 
<?php 
 
\t \t $nextpagevariable = "Supercalifragilisticexpialidocious"; 
 
\t \t $nextpagevariable = sha1($nextpagevariable); 
 
\t \t ?> 
 
\t \t <form name="colorselect" method="post" action="sftcount.php?<?php echo $nextpagevariable; ?>&id=1" > 
 
\t \t \t <select name="color4" id="color4" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #0f6700; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'" '; 
 
\t \t \t \t \t if (!empty($color4)){ if ($color4 == $option) { echo "selected "; }} 
 
\t \t \t \t \t echo '>'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> 
 
\t \t \t <select name="color2" id="color2" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #701b55; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'" '; 
 
\t \t \t \t \t if (!empty($color2)){ if ($color2 == $option) { echo "selected "; }} 
 
\t \t \t \t \t echo '>'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> 
 
\t \t \t <select name="color3" id="color3" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #ee8400; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'" '; 
 
\t \t \t \t \t if (!empty($color3)){ if ($color3 == $option) { echo "selected "; }} 
 
\t \t \t \t \t echo '>'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> 
 
\t \t \t </div> 
 
<div style="clear:both;"> 
 
\t \t <img value="1" src="sft/images/color1.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t <img value="6" src="sft/images/color6.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t <img value="5" src="sft/images/color5.jpg" draggable="true" ondragstart="drag(event)"> 
 
\t \t </div> 
 
\t \t <div style="clear:both;"> 
 
\t \t \t <select name="color1" id="color1" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #00243c; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'">'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> 
 
\t \t 
 
\t \t \t <select name="color6" id="color6" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #74bf12; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'">'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> \t \t 
 
\t \t \t <select name="color5" id="color5" onfocus="this.oldvalue = this.value" onchange="selectRange(this.id,this.value, this.oldvalue); document.activeElement.blur();" style="width:150px; height: 25px; padding:0; background-color: #b00917; color: #ffffff"> 
 
\t \t \t <option value="">&nbsp;</option> 
 
\t \t \t <?php 
 
\t \t \t \t $option = '1'; 
 
\t \t \t \t while ($option <= '25'){ 
 
\t \t \t \t \t echo '<option value="'.$option.'">'.$option.'</option>'; 
 
\t \t \t \t \t $option ++; 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t </select> \t \t 
 
\t \t \t 
 
\t \t 
 
\t \t </div> 
 

 
    <table id="sftTable"> 
 
    <tr> 
 
\t \t \t <td colspan="5" style="border-top:none;border-right:none;border-left:none">Strong Like</td> 
 
\t \t \t <td colspan="5" style="border-top:none;border-right:none;border-left:none">Like</td> 
 
\t \t \t <td colspan="5" style="border-top:none;border-right:none;border-left:none">Nuetral</td> 
 
\t \t \t <td colspan="5" style="border-top:none;border-right:none;border-left:none">Dislike</td> 
 
\t \t \t <td colspan="5" style="border-top:none;border-right:none;border-left:none">Strong Dislike</td> 
 
    </tr> 
 
    <tr> 
 
    <?php $count = '25'; 
 
    while ($count >= '1') { 
 
     echo '<td width="4%" style="" id="change'.$count.'">'.$count.'</td>'; 
 
     $count --; 
 
    } 
 
    ?> 
 
    </tr> 
 

 
    </table> 
 
\t 
 
\t \t \t <p> 
 
\t \t <div class="backbutton"> Back</div> 
 
\t \t <input type="submit" value="next" class="nextbutton"> 
 
\t \t </form> 
 
\t \t </p> 
 
\t \t <p><?php 
 
\t \t echo $color4; 
 
\t \t \t 
 
\t \t ?></p> 
 
</div>

+0

Еще раз спасибо saravanan mp за исходный код. Это просто ревизия с добавленной функцией. Не удалось получить это без помощи – keycrew

Смежные вопросы