2017-01-22 10 views
0

私は入力ボックスに12のチェックボックスを返すループのためにphpを持っています。 $ch_nameがループ'ch'.$xのために照合される場合チェックボックスがチェックされているときに入力ボックスを表示する方法は?

<div class="row"> 
    <div class="col-md-4"> 
    <?php          
    $getChannel = mysqli_query($conn, "SELECT ch_id, ch_name, ch_for FROM channel WHERE lg_id = '$lg_id' "); 

    $ch_for  = array(); 
    $ch_name = array(); 

    while ($fetchChannel = mysqli_fetch_array($getChannel)) { 
     $ch_id  = (int) $fetchChannel['ch_id']; 
     $ch_for[] = htmlspecialchars($fetchChannel['ch_for']); 
     $ch_name[] = htmlspecialchars($fetchChannel['ch_name']); 
    } 

    for ($x=1; $x<=12; $x++) { 
     if( in_array('ch'.$x, $ch_name)) { 
      $sel = 'checked = "checked" '; 
     } else { 
      $sel = ''; 
     } 
     ?> 

     <div class="checkbox form-inline"> 
      <label><input <?php echo $sel; ?> type="checkbox" name="ch_name[]" value="ch<?php echo $x; ?>">CH<?php echo $x; ?></label> 
      <input type="text" name="ch_for[]" value="" placeholder="Channel details" class="form-control ch_for"> 
     </div>          
     <?php 
    } 
    ?>          
</div> 

は、私は、チェックボックスをチェックします。

今、チェックボックスが既にチェックされているjQueryを使用して、対応する入力ボックスを表示します。

のjQueryコード:

$('.ch_for').hide(); 

if ($('.checkbox input:checkbox:checked').length > 0) {   
    $(this).closest('.checkbox').find('.ch_for').show(); 
} 

$('.checkbox input:checkbox').on('click', function(){ 
    $(this).closest('.checkbox').find('.ch_for').toggle('slow'); 
}) 

答えて

0

何を探してるんですが.each機能である:

// no-conflict safe document ready (shorthand version) 
jQuery(function($) { 
    // hide all of the inputs initially 
    $('.ch_for').hide(); 

    // your original function to show/hide on click 
    $('.checkbox input:checkbox').on('click', function() { 
     $(this).closest('.checkbox').find('.ch_for').toggle('slow'); 
    }); 

    // put this in a function for reusability 
    function showInputs() { 
     // use .each to loop over every checked input 
     $('.checkbox input:checkbox:checked').each(function() {   
      // inside .each, $(this) refers to the checkbox element 
      $(this).closest('.checkbox').find('.ch_for').show(); 
     }); 
    } 

    // call the function on initial load 
    showInputs(); 
}); 
+0

私は 'キャッチされないでSyntaxError示すこの –

+0

そのにしてみましょう:引数list'後に行方不明に)コンソールログで –

+0

私はそれを修正しました。それは今働いている。 –

関連する問題