2017-10-11 2 views
-2

私はforeachの内部にスクロールバーでdivを配置しようとしていますが、今問題は、出力に各エコーデータのdivが表示されていることです。divをforeachループの中に入れるには?

+0

...... – GYaN

+0

https://shrib.com/#foreachproblem –

+0

をあなたのコードを与える、私はあなたのソリューションを与えることができますので、あなたは結果の配列を提供することができますか..? – GYaN

答えて

0

ループが反復するたびにforeachループがエコーされます。私は、いくつかの配列やオブジェクトの内容を可能性のある行にエコーしようとしていると仮定します。

これを行うには、foreachループ外のdivのopenタグとcloseタグをエコーし​​ます。 divを静的な高さにし、オーバーフローをスクロールするように設定します。インラインスタイルを使用することはベストプラクティスではありませんが、私は簡潔にするために私の例では、それらを使用します:あなたはforeachループで<div>を複製することを意図している場合

$listOfAnimalsOnNoahsArk = array('dog', 'cat','sheep','warewolf', '...'); 

echo '<div style="width:100%;height:500px;overflow:scroll">'; 
foreach($listOfAnimalsOnNoahsArk as $animal) { 
    echo "<p>$animal</p>"; //Double quotes will print variable values 
} 
echo '</div>'; //Single quotes use less CPU because they print verbatim 

は、あなたの問題は、単にCSS一つです。必要に応じて幅と高さを調整します。

私は私のコメントをした後、[編集]

あなたのコードが掲載されました。ここで私はあなたを介して作業している問題を解決するためのコードを記述する方法を次のとおりです。

<?php 
if($results): 
?> 
    <div class="container"><!--You seem to only need one container--> 
    <?php 
    foreach($results as $blog): //Consider using the colon format (alternate syntax for control structures) for clarity 
    if($blog->role == 'student'): 
    ?> 
     <div class="alert alert-success alert-dismissable"> 
     <a href="<?=base_url('main/delete/'.$blog->replyid)?>" class="close" data-dismiss="alert" aria-label="close">×</a> 
     <?=$blog->reply.$blog->sent?> 
     </div><!--Added this--> 
    <?php 
    //Note: "<?=" in php is the same as "<?php echo" 
    endif; 

    if($blog->role == 'guidance'): 
    ?> 
     <div class="alert alert-danger alert-dismissable"> 
     <a href="<?=base_url('main/delete/'.$blog->replyid)?>" class="close" data-dismiss="alert" aria-label="close">×</a> 
     <?=$blog->sender.':'.$blog->reply.$blog->sent?> 
     </div><!--Added this--> 
    <?php 
    endif; 
    endforeach; 
    ?> 
    </div> 
<?php 
endif; 
?> 

あなたの主な問題は、あなたの主なコンテナは、ループの外にあることが必要です。私が間違っている場合は、よりクリーンな構文で書くことで、コードの可読性が向上し、要素をずっと簡単に動かすことができます。私は、PHPロジックとHTML出力をより明確に区別するために、代替制御構造if():endif;を選択しました。

+0

うん、私はそれを試してみたいですが、コードの一貫性が危機に瀕しています。単引用符メソッドを避けるためにたくさんのphpの開閉タグを使用しています。 –

0

私はあなたの贈与情報に基づいてあなたに答えを与えています。

それはあなたのために働くかもしれません...

アレイの結果を無視してください。

<?php 
$results[0] = json_decode(json_encode(array(
     'concern' => 'hehehe', 
     'sent' => '2017-10-11 08:36:09', 
     'flag' => 1, 
     'adflag' => 1, 
     'role' => 'student', 
     'stud_delete' => 0, 
     'gui_delete' => 0, 
     'replyid' => 118, 
     'blogid' => 16, 
     'sender' => 'Alfred Santos Angeles', 
     'username' => 201410165, 
     'reply' => 'oo' 
    ))); 

echo '<div class="container">'; 
if($results){ foreach ($results as $blog) { if($blog->role == 'student')echo ' 
     <div class="alert alert-success alert-dismissable"> 
      <a href="'.base_url('main/delete/'.$blog->replyid).'" class="close" data-dismiss="alert" aria-label="close">×</a>'.$blog->reply.$blog->sent.' 
     </div>';if($blog->role == 'guidance') echo ' 
     <div class="container"> 
      <div class="alert alert-danger alert-dismissable"> 
       <a href="'.base_url('main/delete/'.$blog->replyid).'" class="close" data-dismiss="alert" aria-label="close">×</a>'.$blog->sender.':'.$blog->reply.$blog->sent.' 
      </div> 
     </div>';}} echo ' 
    </div>';?> 
関連する問題