2013-09-19 1 views
0

Я использую PHP, Smarty, jQuery и т. Д. Для своего сайта. Сейчас сценарий находится в одном файле шаблона есть некоторый код, содержащий петли, флажки, текстовые поля и т.д. Для справки я положить нужный фрагмент кода из Smarty шаблона, как показано ниже:Как установить флажок и зависимость текстового поля в следующем сценарии?

{foreach from=$subject_topic_data.topics item=topic_diff_level_data} 
          <input type="hidden" name="subject_{$subject_topic_data.subject_id}_topics[]" value="{$topic_diff_level_data.topic_id}"> 
          <tr> 
           <td valign="middle">   
           <p class="custom-form"> 
            <input type="checkbox" class="custom-check" name="{$sheet_type}_topics_{$subject_topic_data.subject_id}[]" id="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}" value="{$topic_diff_level_data.topic_id}" {if in_array($topic_diff_level_data.topic_id, $practice_sheet_set_details[$subject_topic_data.subject_id].topics)}checked="checked"{/if}> 
           <label>{$topic_diff_level_data.topic_name}</label> 
           <!-- <input type="hidden" name="topic_names[{$topic_diff_level_data.topic_id}]" value="{$topic_diff_level_data.topic_name}"> --> 
           </p>     
           </td> 
           {foreach from=$topic_diff_level_data.difficulty_level item=diff_level key=key_diff_lvl} 
           <td valign="middle">     
           {if $site_id=='ENTPRM'}<em>Total {$diff_level.question_count}</em>{/if} 
           <input type="text" name="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" id="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" maxlength="3" class="mini" value="{$diff_level.added_no_questions}"> 
           <input type="hidden" name="{$sheet_type}_available_questions_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" value="{$diff_level.question_count}"> 
           </td> 
           {/foreach}    
          </tr> 
          {/foreach} 

Теперь из кода выше то, что я хочу достичь, - это когда пользователь проверяет флажок субъекта на соответствующие текстовые поля темы, которые должны быть включены. Первоначально, когда страница загружает все поля tesxt, все темы должны быть отключены. Не поможешь мне в этом? Если вам нужна дополнительная информация, я могу предоставить вам то же самое. Заранее спасибо.

+0

'темы текстовые поля должны получить enabled' где находится отключенный вход? Предложение: поставьте сгенерированный html, который поможет намного лучше. – Jai

+0

стороне клиента или стороне сервера? – WeTheBrains

ответ

0

стороне клиента:

{foreach from=$subject_topic_data.topics item=topic_diff_level_data} 
<input type="hidden" 
     name="subject_{$subject_topic_data.subject_id}_topics[]" 
     value="{$topic_diff_level_data.topic_id}"> 
<tr> 
    <td valign="middle">   
     <p class="custom-form"> 

Флажок: дать идентификатор subject_selected

 <input type="checkbox" class="custom-check" 
      name="{$sheet_type}_topics_{$subject_topic_data.subject_id}[]" 
      id="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}" 
      value="{$topic_diff_level_data.topic_id}" 
      {if in_array($topic_diff_level_data.topic_id, 
      $practice_sheet_set_details[$subject_topic_data.subject_id].topics)}checked="checked"{/if}> 
     //disabled 
     <label>{$topic_diff_level_data.topic_name}</label> 

     <!-- <input type="hidden" 
        name="topic_names[{$topic_diff_level_data.topic_id}]" 
        value="{$topic_diff_level_data.topic_name}"> 
     --> 
     </p>     
    </td> 
    {foreach from=$topic_diff_level_data.difficulty_level item=diff_level key=key_diff_lvl} 
     <td valign="middle">     
      {if $site_id=='ENTPRM'}<em>Total {$diff_level.question_count}</em>{/if} 
      <input type="text" 
        name="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" 
       id="{$sheet_type}_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" 
       maxlength="3" class="mini" value="{$diff_level.added_no_questions}"> 
      <input type="hidden" 
       name="{$sheet_type}_available_questions_{$subject_topic_data.subject_id}_{$topic_diff_level_data.topic_id}_{$key_diff_lvl}" 
       value="{$diff_level.question_count}"> 
     </td> 
    {/foreach}    
</tr> 
{/foreach} 

Javascript:

<script type=text/javascript> 
function subject_selection(/* pass the selection here */){ 
    var check= document.getElementById('subject_selection'); 
    if (check.checked){ 

/* если отмечено, ajax? изменить html значения (т.е. скрытые)? это до вас / или document.getElementById ('inputSelected'). Тип = ""/ изменить это соответственно */

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