login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Drop-down list met datum afhankelijk selected (Opgelost)

Offline markla - 13/11/2013 09:17
Avatar van marklaPHP interesse voor mijn website ben ik op zoek naar een uitbreiding.

Momenteel heb ik en "pasttoday" script staan dat via
  1. WHERE
  2. DAYOFMONTH(g.Game_DateTime) = DAYOFMONTH(now())
  3. AND
  4. MONTH(g.Game_DateTime) = MONTH(now())

een overzicht van gegevens laat zien die op deze datum in het verleden plaats vonden.

Nu wil ik via een drop-down list de mogelijkheid geven een dag en maand te kiezen.

Het onderstaande script gebruik ik om de mogelijkheid te bieden gegevens die op dezelfde dag en maand in het verleden zijn gebeurd te kunnen kiezen.

Maar ik zou graag default de dag en maand van vandaag als "selected" willen hebben. Kan dat en zo ja hoe moet ik dat aan pakken?


  1. <form action="index.php?page=inc_as_pasttoday_list" method="post" name="input" >
  2. <!-- Day dropdown -->
  3. <select name="day" id="day" onchange="" size="1">
  4. <option value="01">01</option>
  5. <option value="02">02</option>
  6. ..
  7. ..
  8. <option value="31">31</option>
  9.  
  10. <!-- Month dropdown -->
  11. <select name="month" id="month" onchange="" size="1">
  12. <option value="1">Januari</option>
  13. ..
  14. ..
  15. <option value="11">November</option>
  16. <option value="12">December</option>
  17. <input type="submit" value="Submit">';

7 antwoorden

Gesponsorde links
Offline Jointjeff - 13/11/2013 09:26 (laatste wijziging 13/11/2013 09:29)
Avatar van Jointjeff HTML interesse Ik weet niet direct een betere oplossing dan gewoon een if statement te gebruiken.

  1. // dag
  2. $dag = date('d');
  3.  
  4. if($dag == 01){
  5. echo '<option selected>1</option>';
  6. }
  7.  
  8.  
  9. // maand
  10. $maand = date('m');
  11.  
  12. if($maand == 01){
  13. echo '<option selected>1</option>';
  14. }
  15.  
  16.  
  17. // jaar
  18. $jaar = date('y');
  19.  
  20. if($jaar == 13){
  21. echo '<option selected>2013</option>';
  22. }


Ben benieuwd of hier een makkelijke manier voor is.
Offline Wijnand - 13/11/2013 11:31 (laatste wijziging 13/11/2013 11:31)
Avatar van Wijnand Moderator Even een voorbeeld met dag:

  1. <select name="day" id="day" onchange="" size="1">
  2. <?php
  3. for($a=1;$a<=31;$a++) {
  4. $s = '';
  5. if ($a == date("d")) {
  6. $s = 'selected';
  7. }
  8. echo '<option value="' . $a . '" ' . $s . '>' . $a . '</option>';
  9. }
  10. ?>
  11. </select>


Zoiets wil je bereiken toch?

Eventueel kun je een functie maken:

  1. function dateS($name,$opt,$to,$from = 1) {
  2. $str = '<select name="' . $name . '" id="' . $name . '">';
  3. for($a=$from;$a<=$to;$a++) {
  4. $s = '';
  5. if ($a == date($opt)) {
  6. $s = 'selected';
  7. }
  8. $str .= '<option value="' . $a . '" ' . $s . '>' . $a . '</option>';
  9. }
  10. $str .= '</select>';
  11. return $str;
  12. }


Deze roep je dan zo aan:

  1. <?php
  2. echo dateS('day','d',31) . '<br />'; // van 1 t/m 31
  3. echo dateS('month','d',12) . '<br />'; // van 1 t/m 12
  4. echo dateS('year','d',date("Y"),2010) . '<br />'; // van 2010 t/m nu
  5. ?>



Dit is overigens niet getest :-)
Bedankt door: Jointjeff
Offline markla - 13/11/2013 13:06
Avatar van markla PHP interesse @wijnand
top werkt.

Nu nog wat finetunen.

Ik zit even te kijken hoe en waar ik een code neer moet zetten om de naam van de maand als keuze optie te krijgen.
zoiets?

  1. $f = date("F");
  2.  
  3. echo '<option value="' . $a . '" ' . $s . '>' . $f . '</option>';
Offline Wijnand - 13/11/2013 13:49 (laatste wijziging 13/11/2013 14:12)
Avatar van Wijnand Moderator Meestal gebruik ik een array() met namen erin, maar dit schijnt ook goed te werken:

  1. setlocale(LC_TIME, 'NL_nl');
  2. $f = date("F");


Alleen moet je dan in die select iets anders doen.

Deze zet je buiten de function (liefst bovenaan in de root-index file)
  1. setlocale(LC_TIME, 'NL_nl');


Dan wordt de functie zo:


  1. function dateS($name,$opt,$to,$from = 1) {
  2. $str = '<select name="' . $name . '" id="' . $name . '">';
  3. for($a=$from;$a<=$to;$a++) {
  4. $v = $a;
  5. if ($name == 'month') {
  6. $v = date("F",strtotime('2013-' . $v . '-01'));
  7. }
  8. $s = '';
  9. if ($a == date($opt)) {
  10. $s = 'selected';
  11. }
  12. $str .= '<option value="' . $a . '" ' . $s . '>' . $v . '</option>';
  13. }
  14. $str .= '</select>';
  15. return $str;
  16. }
Offline markla - 13/11/2013 14:15
Avatar van markla PHP interesse
die $f = date("F"); had ik al gevonden :-)

maar als ik die inhet script set krijg ik bij elke optie de huidige maand -November- te staan :-(
Offline Wijnand - 13/11/2013 14:26
Avatar van Wijnand Moderator Ik heb meer in die functie gezet Markla...

Kopieer even die nieuwste functie en gebruik die.
Offline markla - 13/11/2013 16:21
Avatar van markla PHP interesse dat was hem thanks!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.284s