voetbal loterij
Ik wil iets gaan maken voor een voetballoting. Nu kan ik met de random functie
elke keer een club kiezen. bv club1=nr. 1 , club2=nr. 2. etc. Maar nu mogen ze maar een keer voorkomen. Als deze al een keer gekozen is, dan is het natuurlijk niet handig door de bewuste keuze nog een keer voor bijkomt. Kan iemand mij op weg helpen?? Ik ben nog niet erg lang bezig met php.
elke keer een club kiezen. bv club1=nr. 1 , club2=nr. 2. etc. Maar nu mogen ze maar een keer voorkomen. Als deze al een keer gekozen is, dan is het natuurlijk niet handig door de bewuste keuze nog een keer voor bijkomt. Kan iemand mij op weg helpen?? Ik ben nog niet erg lang bezig met php.
Zet alles in een array().
Shuffle en haal er een uit.
Shuffle en haal er nog een uit.
Net zo lang totdat het array() leeg is.
Je hebt dan nooit twee keer dezelfde.
Shuffle en haal er een uit.
Shuffle en haal er nog een uit.
Net zo lang totdat het array() leeg is.
Je hebt dan nooit twee keer dezelfde.
dus als ik de funtie array_rand gebruik dan gebruikt ie alles maar
1 keer? Of kun je me nog iets meer op weg helpen?
1 keer? Of kun je me nog iets meer op weg helpen?
Eigenlijk is dit nog simpeler. Komt zo van php.net.
Je doorloopt het array() gewoon en jij hebt je clubs in willekeurige volgorde.
Code (php)
Je doorloopt het array() gewoon en jij hebt je clubs in willekeurige volgorde.
ok, dat snap ik. Het gaat er nu om dat niet alles in een keer wordt uitgevoerd, maar beetje bij beetje....
Maar nu kunnen clubs zichzelf kiezen.
hoezo? het gaat erom dat elke keer als ik op een link klik een nieuwe club wordt geselecteerd dmv random of shuffle. En dat de club later niet opnieuw wordt gekozen.
Volgens mij gebeurt dat op deze manier niet... ik moet alleen die array elke keer opnieuw draaien en niet in een keer...
Toevoeging op 31/01/2011 20:32:21:
Kan iemand mij hiermee verder op weg helpen?
Los van het geen al is voorgesteld. Het gaat erom
dat elke keer opnieuw 1 club wordt gekozen.
Volgens mij gebeurt dat op deze manier niet... ik moet alleen die array elke keer opnieuw draaien en niet in een keer...
Toevoeging op 31/01/2011 20:32:21:
Kan iemand mij hiermee verder op weg helpen?
Los van het geen al is voorgesteld. Het gaat erom
dat elke keer opnieuw 1 club wordt gekozen.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$woorden = array("club1", "club2", "club3", "club4");
$kiesWoord = array_rand($woorden);
echo $woorden[$kiesWoord];
?>
$woorden = array("club1", "club2", "club3", "club4");
$kiesWoord = array_rand($woorden);
echo $woorden[$kiesWoord];
?>
Misschien heb je hier iets aan. Er wordt elke keer een willekeurig woord gekozen.
Gewijzigd op 01/02/2011 10:29:48 door henkieee watdenkie
Dit kun je het beste client-side aanpakken, dus met javascript, omdat de pagina anders na elke userinput moet worden vernieuwd. Je moet de data dan wel met PHP controleren nadat het formulier is gesubmit.
Hieronder een opzetje met jQuery:
Hieronder een opzetje met 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script>
var clubs = ['Ajax', 'PSV', 'Feyenoord'];
function genereerOpties(id) {
$('select#club'+id).append('<option>Selecteer een club</option>');
$.each(clubs, function(index, value) {
$('select#club'+id).append('<option>'+value+'</option>');
});
}
$(document).ready(function() {
genereerOpties(1);
$('select').change(function() {
var id = parseInt($(this).attr('id').replace('club', ''));
$(this).attr('disabled', true);
$('form').append('<input name="volgorde['+id+']" type="hidden" value="'+$(this).val()+'" />');
clubs = jQuery.grep(clubs, function(value) {
return value != $('#club'+id).val();
});
genereerOpties(id + 1);
});
});
</script>
<form method="post">
<label>Keuze 1</label>
<select id="club1">
</select>
<br /><label>Keuze 2</label>
<select id="club2">
</select>
<br /><label>Keuze 3</label>
<select id="club3">
</select>
<br /><input type="submit">
</form>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script>
var clubs = ['Ajax', 'PSV', 'Feyenoord'];
function genereerOpties(id) {
$('select#club'+id).append('<option>Selecteer een club</option>');
$.each(clubs, function(index, value) {
$('select#club'+id).append('<option>'+value+'</option>');
});
}
$(document).ready(function() {
genereerOpties(1);
$('select').change(function() {
var id = parseInt($(this).attr('id').replace('club', ''));
$(this).attr('disabled', true);
$('form').append('<input name="volgorde['+id+']" type="hidden" value="'+$(this).val()+'" />');
clubs = jQuery.grep(clubs, function(value) {
return value != $('#club'+id).val();
});
genereerOpties(id + 1);
});
});
</script>
<form method="post">
<label>Keuze 1</label>
<select id="club1">
</select>
<br /><label>Keuze 2</label>
<select id="club2">
</select>
<br /><label>Keuze 3</label>
<select id="club3">
</select>
<br /><input type="submit">
</form>
Gewijzigd op 01/02/2011 12:26:43 door Lauren Zonneveld
Waarom nu weer Ajax gebruiken? Het is heel simpel: maak een array met de clubs, shuffle ze en zet die in een sessie. Elke keer dat je naar een nieuwe pagina gaat haal je de eerste (of laatste) uit de array zodat die club de volgende keer niet meer gekozen wordt.
Ik zou het zeker niet met javascript doen want dan is het nogal fraude gevoelig omdat het bij de client is.
Ik denk dat jij iets met een database moet gaan doen en dan opslaan welke club er al is geweest.
Je kan dan met de rand() functie een random club uitzoeken en dan in de where bijv geweest=0 doen
Ik denk dat jij iets met een database moet gaan doen en dan opslaan welke club er al is geweest.
Je kan dan met de rand() functie een random club uitzoeken en dan in de where bijv geweest=0 doen
Hi Christiaan,
Laten we bij het begin beginnen. Waar zijn de gegevens opgeslagen ( de namen van de clubs ) in een database of in een bestand als array?
Dashti
Laten we bij het begin beginnen. Waar zijn de gegevens opgeslagen ( de namen van de clubs ) in een database of in een bestand als array?
Dashti
Dashti Salar op 01/02/2011 14:15:32:
Hi Christiaan,
Laten we bij het begin beginnen. Waar zijn de gegevens opgeslagen ( de namen van de clubs ) in een database of in een bestand als array?
Dashti
Laten we bij het begin beginnen. Waar zijn de gegevens opgeslagen ( de namen van de clubs ) in een database of in een bestand als array?
Dashti
Hij is al op het punt dat hij de gegevens in een array heeft als ik de posts zo lees. Hij vraagt nu hoe over meerdere pagina's een semi-willekeurig plaatje getoond wordt. En @Vincent: niet in een database doen! Dan wordt je database overspoelt met tijdelijke data. Voor tijdelijke data zijn sessies uitgevonden. Dus shuffle een array, zet hem in een sessie en haal er op elke pagina één uit.
The Force op 01/02/2011 14:13:21:
Waarom nu weer Ajax gebruiken? Het is heel simpel: maak een array met de clubs, shuffle ze en zet die in een sessie. Elke keer dat je naar een nieuwe pagina gaat haal je de eerste (of laatste) uit de array zodat die club de volgende keer niet meer gekozen wordt.
het is voor een gemeentecup waar (ongeveer) 10 clubs aan meedoen. Is er dan ook een mogelijheid dat ze automatisch eruit worden gehaald.??
Toevoeging op 02/02/2011 09:46:57:
ik heb snel even een bestand gemaakt om het iets meer visueel te maken. Dan wordt het wellicht wat duidelijker. http://www.jcled2.nl/voetballoting.jpg




