ブートストラップv3.3.7を使用していて、アコーディオンを表示しています。
<?php if($post->prime==1) {?>
// bootstrap accordions code
<?php } ?>
<?php foreach ($secMember as $secPay) {?>
// bootstrap accordions code
<?php }?>
if condition
最初に上記について話しましょう。その場合、$post->prime==1
アコーディオンが表示されます。
について話しましょうforeach
。
データベースからレコードをフェッチし、アコーディオンを表示するレコードの総数をデパンディングしています。
アコーディオンを完全に取得しています。問題はありませんが、アコーディオンをクリックすると問題が発生します。つまり、それに従ってクリックすると、最初のアコーディオンだけが閉じます。クリックで2番目のアコーディオンを閉じると、最初のアコーディオンも閉じます。に問題があると思いますId
。この問題を確認して支援できますか?
私は出力を取得しています
------------------
first accordion //getting from if condition
------------------
//Geting from foreach condition
------------------
second accordion
------------------
third accordion
------------------
|
|
//display depanding upon the number of records
2番目のアコーディオンをクリックすると、3番目のアコーディオンと同じように最初のアコーディオンが閉じます。
ここにコード全体
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="false">
<?php if($post->prime==1) {?>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<?php echo $secPay->title;?>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<?php echo $secPay->content;?>
</div>
</div>
</div>
<?php }?>
<?php foreach ($secMember as $secPay) {?>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<?php echo $secPay->title;?>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<?php echo $secPay->content;?>
</div>
</div>
</div>
<?php }?>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
はい、ついに答えを見つけました。それが正しいかどうかはわかりません。
私がしたこと、
$x=1
foreachの外側とforeachの$x++
内側と呼ばれる変数を作成しました。x
2か所で更新しました。
最初の1つ
<a role="button" data-toggle="collapse" href="#collapseOne<?php echo $x;?>" aria-expanded="true" aria-controls="collapseOne">
二つ目
<div id="collapseOne<?php echo $x;?>" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
そしてそれは完全に機能しています。私が正しい道を進んでいるかどうかを教えてください。これでもっと何かを変更する必要がありますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加