$i++ werkt niet
Wie - o - wie?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$i = 1;
if ($i == 1) {
echo "<div id='div1'>";
} elseif ($i == 2) {
echo "<div id='div2'>";
} elseif ($i == 3) {
echo "<div id='div3'>";
}
?>
<table>
<tr>
<td><?php echo $row["titel"]; ?></td>
</tr>
<tr>
<td><?php echo $row["bericht"]; ?></td>
</tr>
<tr>
<td><?php echo $row["newDate"]; ?></td>
</tr>
</table>
<?php
echo "</div>";
$i++;
}
} else {
echo "Er is geen bericht om te weergeven";
}
?>
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$i = 1;
if ($i == 1) {
echo "<div id='div1'>";
} elseif ($i == 2) {
echo "<div id='div2'>";
} elseif ($i == 3) {
echo "<div id='div3'>";
}
?>
<table>
<tr>
<td><?php echo $row["titel"]; ?></td>
</tr>
<tr>
<td><?php echo $row["bericht"]; ?></td>
</tr>
<tr>
<td><?php echo $row["newDate"]; ?></td>
</tr>
</table>
<?php
echo "</div>";
$i++;
}
} else {
echo "Er is geen bericht om te weergeven";
}
?>
Ik zou de $i=1 (regel 4) vóór de while-loop zetten. ;-) Zoals het nu is, maakt die de $i++ (regel 26) meteen weer ongedaan.
Zie regel 4. Als je $i blijft resetten naar 1 verandert er nooit wat.
Dit is mijn allereerste $i++ en ik heb het nooit begrepen. Maar dat begint nu meer te komen, thanks.
Tevens zal ik echo "<div id='div$i'>"; ook aanpassen. Bedankt voor de tips. :-)
Waarom hebben deze divs een id nodig en kun je niet volstaan met een class?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
div > table {
/* alle div's met een tabel erin */
background-color: red;
}
div:first-of-type > table {
/* eerste div's met een tabel erin */
background-color: blue;
}
div:last-of-type > table {
/* laatste div's met een tabel erin */
background-color: green;
}
/* alle div's met een tabel erin */
background-color: red;
}
div:first-of-type > table {
/* eerste div's met een tabel erin */
background-color: blue;
}
div:last-of-type > table {
/* laatste div's met een tabel erin */
background-color: green;
}
Voorbeeld: http://codepen.io/anon/pen/MwPoWz
Voordelen:
- je hebt geen nummertjes nodig.
- bij aanpassing (meer tabellen waarschijnlijk) hoef je niets aan te passen aan je CSS. Je hoeft #div3 niet te veranderen naar #div4 of #div5
- je HTML blijft schoner (als is het raar om een tabel met 1 cel in een <div> te plaatsen...)
- je hebt geen PHP nodig om dit te maken. Kortere code is sneller, eenvoudiger en gemakkelijk aan te passen.
Daarnaast: je toont een titel, bericht en datum. Hoort dat is een tabel? Dat kan, maar dan zou alles in 1 tabel horen en niet per rij (row) een tabel... maar een <tr> == Table Row.
Het is een soort van nieuws dislay op kantoor.
En met Jquery geef ik een effect aan een div via ID #
En een container-div hier omheen zetten die je (als enige) een id geeft werkt niet?
Ik snap niet wat je bedoelt. Elk nieuw bericht moeten een eigen div id krijgen zodat ik die afzonderlijk van elkaar kan aanspreken.
Code (php)
1
2
3
4
5
2
3
4
5
<div id="myContainer">
<div class="someclass">...</div>
<div class="someclass">...</div>
<div class="someclass">...</div>
</div>
<div class="someclass">...</div>
<div class="someclass">...</div>
<div class="someclass">...</div>
</div>
Extra data (zoals id's) kun je in losse data-attributen meegeven, dit hoef je niet per se in een id te stoppen / hier weer uit te peuteren.
Als je vervolgens events hebt kun je zoiets doen:
Maar het is dus niet zo dat je per definitie elke div die je afzonderlijk wilt selecteren een id zou moeten hebben. Binnen die functie heb je namelijk $(this), waarmee je de geselecteerde div al te pakken hebt.
Het zou natuurlijk helpen als je toelicht wat je vervolgens met al die id's wilt doen... en waarom je die nodig zou hebben, vaak kun je namelijk prima zonder / met minder af. Het lijkt mij een goede (programmeer)gewoonte om het gebruik van id's zoveel mogelijk te beperken.
Gewijzigd op 26/07/2015 23:11:49 door Thomas van den Heuvel
<div id="berichten">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
En heb ik dit als jquery:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$( document ).ready(function() {
// First hide them all
$("#berichten div").hide();
function berichten($div, cb) {
$div.fadeIn(2000, function () {
$div.fadeOut(2000, function () {
var $next = $div.next();
if ($next.length > 0) {
berichten($next, cb);
}
else {
// The last element has faded away, call the callback
cb();
}
});
});
}
function startFading($firstDiv) {
berichten($firstDiv, function () {
startFading($firstDiv);
});
}
startFading($("#berichten div:first-child"));
});
[\code]
Werkt perfect
// First hide them all
$("#berichten div").hide();
function berichten($div, cb) {
$div.fadeIn(2000, function () {
$div.fadeOut(2000, function () {
var $next = $div.next();
if ($next.length > 0) {
berichten($next, cb);
}
else {
// The last element has faded away, call the callback
cb();
}
});
});
}
function startFading($firstDiv) {
berichten($firstDiv, function () {
startFading($firstDiv);
});
}
startFading($("#berichten div:first-child"));
});
[\code]
Werkt perfect
Gewijzigd op 27/07/2015 09:25:33 door Danny von Gaal