For loop voor weeknummers.
ik heb nu dit:
Code (php)
graag zou ik het zo willen:
(huidige week nummer is 37)
37
38
39
40
...
52
1
2
3
..
36
alvast bedankt voor alle hulp!!
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 13/09/2017 16:41:00 door - Ariën -
Als je wilt beginnen met het huidige weeknummer, dan moet je in je for() niet met $week = 1 beginnen, maar met $week=date('W').
Dat heb ik gedaan, dan begint hij inderdaad met de huidige weeknummer...
maar dan eindig hij bij 52, en begint hij niet meer opnieuw.
ik wil dat die na de 52 weer bij 1 begint
Tja, weeknummers blijven getallen, en getallen blijven oplopen, dus ik denk dat je dan toch echt met twee for loopjes aan de slag moet gaan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
for ($currentWeek = date('W'), $week = $currentWeek; $week != $currentWeek - 1; $week++) {
if ($week > 52) {
$week = 1;
}
if ($week == $currentWeek){
echo ">>>";
}
echo "<button id='toggle$week' value='$week' type='button' class='btn btn-link'><h4>Week $week</h4></button>";
echo "<div id='content$week'>";
}
?>
for ($currentWeek = date('W'), $week = $currentWeek; $week != $currentWeek - 1; $week++) {
if ($week > 52) {
$week = 1;
}
if ($week == $currentWeek){
echo ">>>";
}
echo "<button id='toggle$week' value='$week' type='button' class='btn btn-link'><h4>Week $week</h4></button>";
echo "<div id='content$week'>";
}
?>
Code (php)
Let op: soms heeft een jaar 53 weken (2020 weer).
Ben van Velzen, jou loop werkt, alleen week 63 wordt dan niet getoond?
Rob doemaarwat -> jou code is wat ik wil hebben
alleen hoe ga ik deze implementeren zodat die op mijn eigen code lijkt..
(ik ben nog maar een php beginner)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$date = time();
for($i = 0; $i < 52; $i++){
$week = date('o\\WW',$date);
if(!$i) print('>>>'); //1st week = current week
echo "<button id='toggle$week' value='$week' type='button' class='btn btn-link'><h4>Week $week</h4></button>\n";
echo "<div id='content$week'>\n";
$date = strtotime('+1 week',$date);
}
?>
$date = time();
for($i = 0; $i < 52; $i++){
$week = date('o\\WW',$date);
if(!$i) print('>>>'); //1st week = current week
echo "<button id='toggle$week' value='$week' type='button' class='btn btn-link'><h4>Week $week</h4></button>\n";
echo "<div id='content$week'>\n";
$date = strtotime('+1 week',$date);
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Je hebt dan wel 2x een week 37 (deze week, en die van volgend jaar), en dus ook 2x een id='toggle37' (en dus een probleem). Daarom had ik het jaartal er nog even voor geplakt ('o\\WW' -> o = jaartal behorende bij het weeknr, \\W = letterlijke 'W', W = weeknummer).
De <div> wordt nergens afgesloten.
Ik ben nu een stuk verder, alleen helaas werkt niet toggle niet meer.
Weet iemand hoe dat komt.
Waarschijnlijk omdat je allemaal verschillende id's hebt? Ik zou in plaats van id="toggle11" maar gewoon een class gebruiken, bijvoorbeeld class="toggleWeek". Hiervoor moet je wel enigzins je javascript aanpassen waarschijnlijk. Een stukje code hiervan zou handig zijn..
Code (php)
1
2
3
4
5
2
3
4
5
var toggle1 = document.getElementById('toggle1');
var content1 = document.getElementById('content1');
var toggle2 = document.getElementById('toggle2');
var content2 = document.getElementById('content2');
var content1 = document.getElementById('content1');
var toggle2 = document.getElementById('toggle2');
var content2 = document.getElementById('content2');
t/m 52
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
toggle1.addEventListener("click", function(){
content1.style.display = (content1.dataset.toggled ^= 1) ? "block" : "none";
}, false);
toggle2.addEventListener("click", function(){
content2.style.display = (content2.dataset.toggled ^= 1) ? "block" : "none";
}, false);
content1.style.display = (content1.dataset.toggled ^= 1) ? "block" : "none";
}, false);
toggle2.addEventListener("click", function(){
content2.style.display = (content2.dataset.toggled ^= 1) ? "block" : "none";
}, false);
t/m 52
Classes weet ik niet hoe dat werkt, dat staat op me lijstje om het te leren!
Gewijzigd op 18/09/2017 13:40:40 door Karamm Jzz
Code (php)
1
2
2
echo "<button data-weeknr='$week' value='$week' type='button' class='weektogglaar btn btn-link'><h4>Week $week</h4></button>";
echo "<div id='content$week' class='contentdiv'>";
echo "<div id='content$week' class='contentdiv'>";
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$(document).on('click', '.weektogglaar', function() {
$('.contentdiv').hide();
var weekrn = $(this).data('weeknr');
$('#content' + weeknr).show();
});
$('.contentdiv').hide();
var weekrn = $(this).data('weeknr');
$('#content' + weeknr).show();
});
indien ergens geklikt wordt, en het blijkt een element te zijn met de class weektogglaar, dan doe:
* verberg alle elementen met de class contentdiv
* haal het weeknr op uit het geklikte element (de button) dus in data-weeknr
* show het element met id = content+weeknr
Het stukje van @rob doemaarwat doet wat ik wil alleen werkt de toggle niet, misschien omdat de weeknummers
worden geprint met 01,02, 03 enz..
ik heb me javascript aangepast naar toggle01 content01
maar hij werkt helaas niet.