2

私はレコードセットからのレコードのリストを持っています:

 <?php while($row = mysqli_fetch_array($result_imprint))  
{ ?> 
    <tr><td><input type="checkbox" id="location_<?php echo $row['location_id']; ?>" name="location_[<?php echo $row['location_id']; ?>]" value="location_<?php echo $row['imprint_location']; ?>"/> </td>
    <td><?php echo $row['imprint_location']; ?></td>
    <td><?php echo $row['max_size']; ?></td>
    <td><?php echo $row['imprint_type']; ?> </td>
    <td> <?php echo $row['max_colours']; ?></td>
    <td><?php echo $row['setup_fee']; ?></td></tr>
<?php } ?>    

誰かがこれらのレコードのいずれかからボックスをチェックした場合、div を表示する方法がわかりません。最大6つのレコードがあり、divはすでに完了しています:

    <div class="location_1" id="location_1" style="display: none;">
<br /><hr class="style-seven">
Content Here
</div>

これは私が使用したコードですが、動作していないようです:

$(document).ready(function(){
$('#location').change(function(){
        if(this.checked)
            $('#location_[<?php echo $row['location_id']; ?>]').fadeIn('slow');
        else
            $('#location_[<?php echo $row['location_id']; ?>]').fadeOut('slow');

    });
});

どんな助けでも大歓迎です。ありがとう

4

4 に答える 4

1

手始めに... ID はページ上で一意である必要があります。したがって、id="location_1" のチェックボックスを作成してから、id が "location_1" の div を作成することはできません。

したがって、ID「location_X」のチェックボックスと「div_location_X」のdivがあります

また、phpスクリプトへのajax呼び出しを行うか、ループを実行して各チェックボックスのすべてのjavascriptを記述しない限り、javascriptでphpを使用するのをやめますが、次のようにする方が簡単です。

チェックすると(クラスを使用してすべてのチェックボックスをグループ化します)、javascipt を取得してチェックボックスの id 属性を取得できます

    <input type="checkbox" id="location_1" name="location_1" class="check"/> </td>

$(document).ready(function(){
$('.check').change(function(){

if((.check).is(":checked"))
    var div_name = $(this).attr('id'); //this should come back with location_1 for the first checkbox
    $('#div_'+div_name+'').fadeIn('slow'); // prepend div_ for the corrent unique id name
else
    $('#div_'+div_name+'').fadeOut('slow');
  });
    });

デバッグにクロム ツール コンソールを使用する

于 2013-10-10T10:02:06.917 に答える
1

現在、php コードは文字列として解釈されます。

コードを次のように変更してみてください。

$('#location_['+<?php echo $row["location_id"]; ?>+']').fadein('slow')

それぞれフェードアウト用です。

于 2013-10-10T09:39:16.880 に答える