ugrás a tartalomhoz

Hírek listázása while ciklussal, egy divbe csak 3 hír, majd új div nyitása

geforce9600gt · 2015. Ápr. 30. (Cs), 13.57
Sziasztok

Híreket listázok ki sql-ből, while ciklussal. Responsive design miatt a következő szerkezetre van szükségem:
  1. <section class="main_items_section">  
  2.     <div class="row main_item_row">  
  3.         <div class="grid_main_item">  
  4.             <a href="muanyag_ablak"><img src="images/catalog/3.jpg"></a>  
  5.             <a href="muanyag_ablak"><h4>Hír címe</h4></a>  
  6.             <p>Hír leírása.</p>  
  7.         </div>  
  8.         <div class="grid_main_item">  
  9.             <a href="muanyag_ajto"><img src="images/catalog/3.jpg"></a>  
  10.             <a href="muanyag_ajto"><h4>Hír címe</h4></a>  
  11.             <p>Hír leírása.</p>  
  12.         </div>  
  13.         <div class="grid_main_item">  
  14.             <a href="muanyag_toloajto"><img src="images/catalog/1.jpg"></a>  
  15.             <a href="muanyag_toloajto"><h4>Hír címe</h4></a>  
  16.             <p>Hír leírása.</p>  
  17.         </div>  
  18.     </div>  
  19.     <!-- Új .row div -->  
  20.     <div class="row main_item_row">  
  21.         <div class="grid_main_item">  
  22.             <a href="muanyag_ablak"><img src="images/catalog/3.jpg"></a>  
  23.             <a href="muanyag_ablak"><h4>Hír címe</h4></a>  
  24.             <p>Hír leírása.</p>  
  25.         </div>  
  26.         <div class="grid_main_item">  
  27.             <a href="muanyag_ajto"><img src="images/catalog/2.jpg"></a>  
  28.             <a href="muanyag_ajto"><h4>Hír címe</h4></a>  
  29.             <p>Hír leírása.</p>  
  30.         </div>  
  31.         <div class="grid_main_item">  
  32.             <a href="muanyag_toloajto"><img src="images/catalog/1.jpg"></a>  
  33.             <a href="muanyag_toloajto"><h4>Hír címe</h4></a>  
  34.             <p>Hír leírása.</p>  
  35.         </div>  
  36.     </div>   
  37. </section>  
Hogy kell összeállítanom a ciklust, hogy hármasával rakja ki a híreket egy .row divbe?

- .row div nyitása
- 3 hír kirakása
- .row div zárása

- .row div nyitása
- 3 hír kirakása
- .row div zárása

- .row div nyitása
- 3 hír kirakása
- .row div zárása

És így tovább, ahány sor van...

Köszi előre is a help-et!
 
1

Underscore

Poetro · 2015. Ápr. 30. (Cs), 14.22
Mivel nem írtad, milyen függvénytárakat használsz, feltételeztem, hogy Underscore.js-t.
Ekkor a következő a megoldás, feltételezve, hogy a result tömb a href, image, title és description tulajdonságú objektumokat tartalmaz:
  1. var template = '<div class="grid_main_item"><a href="<%- href %>"><img src="<%- image %>"></a><a href="<%- href %>"><h4><%- title %></h4></a><p><%- description %></p></div>';  
  2. var compiled = _.template(template);  
  3. var groups = _.groupBy(result, function (item, index) {  
  4.     return Math.floor(index / 3);  
  5. });  
  6. document.body.innerHTML = _.map(groups, function (group) {  
  7.     return '<div class="row main_item_row">\n' + group.map(compiled).join('\n') + '\n</div>\n';  
  8. }).join('\n');  
2

Ezt biztos nekem akartad

geforce9600gt · 2015. Ápr. 30. (Cs), 14.49
Ezt biztos nekem akartad írni?? :) Semmi ilyen js cuccot nem használok.
3

HTML, CSS, JavaScript, Ajax

Poetro · 2015. Ápr. 30. (Cs), 15.10
Akkor miért ebben a témában küldted be?
4

Responsive design miatt a

Hidvégi Gábor · 2015. Ápr. 30. (Cs), 15.35
Responsive design miatt a következő szerkezetre van szükségem
Ha már reszponzív, akkor nem pont hogy ömleszteni kéne a <div class="grid_main_item">-eket, és css-ből megmondani, hol legyen a sortörés?
5

De attól még nem kerül új

geforce9600gt · 2015. Ápr. 30. (Cs), 15.41
De attól még nem kerül új .row divbe. És abba kellene, mert úgy jó már a megjelenés.
6

Kell-e, hogy az új .row-ba

Hidvégi Gábor · 2015. Ápr. 30. (Cs), 16.01
Kell-e, hogy az új .row-ba kerüljön? Most minden sorban legfeljebb három elem van, ami átlagos képernyőn biztos jól néz ki, de mi van a 16:9-es arányú monitorokkal, ahol akár öt is elférhetne egymás mellett?
7

Példa

Poetro · 2015. Ápr. 30. (Cs), 16.11
  1. <section class="news">  
  2.   <article>  
  3.       <a href="/link/title-01">  
  4.           <h1>Title 01</h1></a>  
  5.       <p>Description 01</p>  
  6.   </article>  
  7.   <article>  
  8.       <a href="/link/title-02">  
  9.           <h1>Title 02</h1></a>  
  10.       <p>Description 02</p>  
  11.   </article>  
  12.   <article>  
  13.       <a href="/link/title-03">  
  14.           <h1>Title 03</h1></a>  
  15.       <p>Description 03</p>  
  16.   </article>  
  17.   <article>  
  18.       <a href="/link/title-04">  
  19.           <h1>Title 04</h1></a>  
  20.       <p>Description 04</p>  
  21.   </article>  
  22.   <article>  
  23.       <a href="/link/title-05">  
  24.           <h1>Title 05</h1></a>  
  25.       <p>Description 05</p>  
  26.   </article>  
  27. </section>  
  1. .news article {  
  2.   background-color: lightgrey;  
  3.   border1px solid grey;  
  4.   padding10px;  
  5.   box-sizing: border-box;  
  6. }  
  7. @media (min-width:500px) {  
  8.   .news article {  
  9.     width50%;  
  10.     floatleft;  
  11.   }  
  12. }  
  13. @media (min-width:720px) {  
  14.   .news article {  
  15.     width33%;  
  16.   }  
  17. }  
  18. @media (min-width:1280px) {  
  19.   .news article {  
  20.     width25%;  
  21.   }  
  22. }  
  23. @media (min-width:1920px) {  
  24.   .news article {  
  25.     width20%;  
  26.   }  
  27. }  
Demo
8

Így oldottam

geforce9600gt · 2015. Ápr. 30. (Cs), 21.23
Így oldottam meg:
  1. <?php  
  2.             $sql = "SELECT hir_id, hir_cim, hir_seo, hir_rovid, hir_thumb, hir_status, hir_sorrend   
  3.             FROM hir WHERE hir_status = 1 ORDER BY hir_sorrend ASC";  
  4.             $get_news = mysqli_query($kapcs$sql);  
  5.             if(mysqli_num_rows($get_news) > 0 )  
  6.             {  
  7.                 $i = 0;  
  8.                 echo '<div class="row main_item_row">';  
  9.                 while($n = mysqli_fetch_assoc($get_news))  
  10.                 {  
  11.                     if($i%3==0)  
  12.                     {  
  13.                         echo '</div>';  
  14.                         echo '<div class="row main_item_row">';  
  15.                     }  
  16.                     ?>  
  17.                     <div class="grid-1-3">  
  18.                         <a href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/hir/<?php echo intval($n['hir_id']); ?>/<?php echo htmlspecialchars($n['hir_seo']); ?>"   
  19.                         title="<?php echo htmlspecialchars($n['hir_cim']); ?>">  
  20.                           <img src="http://<?php echo $_SERVER['HTTP_HOST']; ?>/images/news/<?php echo htmlspecialchars($n['hir_thumb']); ?>"   
  21.                           alt="<?php echo htmlspecialchars($n['hir_cim']); ?>">  
  22.                         </a>  
  23.                         <a href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/hir/<?php echo intval($n['hir_id']); ?>/<?php echo htmlspecialchars($n['hir_seo']); ?>"   
  24.                         title="<?php echo htmlspecialchars($n['hir_cim']); ?>"><h4><?php echo htmlspecialchars($n['hir_cim']); ?></h4></a>  
  25.                         <p><?php echo htmlspecialchars($n['hir_rovid']); ?></p>  
  26.                     </div>  
  27.                     <?php  
  28.                     $i++;  
  29.                 }  
  30.                 echo '</div>';  
  31.             }  
  32.             ?>