datum in select options aanpassen doormiddel van AJAX

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

M V

M V

12/01/2011 20:35:45
Quote Anchor link
Voor de site waar ik mee bezig ben is de geboortedatum van belang. Sommige content mag namelijk niet gelezen worden door minderjarige. Hierom wordt je bij het registreren dan ook gevraagd om je geboortedatum in te vullen. Hierbij wil ik graag dat de dagen aangepast worden afhankelijk van welke maand je kiest. Kies je 2 (februari) dan mag in het dagen maar 29 dagen zijn.
Dit moet mogelijk zijn met Javascript/AJAX, maar ik kan op het net geen degelijke code vinden die hierover gaat.

dit is de code die ik tot nog toe heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
<tr><label>Date of Birth (m/d/y):</label>
    <td>
        <select id="dobmonth" name="dobmonth">
            <option disabled="disabled">Month</option>
            <option value="1">1</option>
            <option value="1">2</option>
            <option value="1">3</option>
            <option value="1">4</option>
            <option value="1">5</option>
            <option value="1">6</option>
            <option value="1">7</option>
            <option value="1">7</option>
            <option value="1">9</option>
            <option value="1">10</option>
            <option value="1">11</option>
            <option value="1">12</option>
        </select>
        <select id="dobday" name="dobday">
            <option disabled="disabled">Day</option>
            <option>1</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
            <option>5</option>
            <option>6</option>
            <option>7</option>
            <option>7</option>
            <option>9</option>
            <option>10</option>
            <option>11</option>
            <option>12</option>
            <option>13</option>
            <option>14</option>
            <option>15</option>
            <option>16</option>
            <option>17</option>
            <option>18</option>
            <option>19</option>
            <option>20</option>
            <option>21</option>
            <option>22</option>
            <option>23</option>
            <option>24</option>
            <option>25</option>
            <option>26</option>
            <option>27</option>
            <option>28</option>
            <option>29</option>
            <option>30</option>
            <option>31</option>
        </select>
    </td>
</tr>


Ik heb enkel het deel dat op mijn vraag van toepassing geplaatst, het staat in een tabel en een form.
 
PHP hulp

PHP hulp

03/12/2024 18:20:40
 
Noppes Homeland

Noppes Homeland

12/01/2011 21:10:59
Quote Anchor link
En zoals gewoonlijk weer eens te lui om op php.net te kijken:
http://www.php.net/date
http://www.php.net/strtotime
 
M V

M V

12/01/2011 21:18:19
Quote Anchor link
Noppes Homeland op 12/01/2011 21:10:59:
En zoals gewoonlijk weer eens te lui om op php.net te kijken:
http://www.php.net/date
http://www.php.net/strtotime


die gaan over hoe je de datum van nu kunt verkrijgen dmv php. Dat is niet wat ik wil. De gebruiker moet zijn geboortedatum invullen in een formulier. De dagen zijn afhankelijk van de maanden en het moet direct verandern AJAX dus.

Oftewel te lui om alles te lezen ;P
 
Noppes Homeland

Noppes Homeland

12/01/2011 22:03:30
Quote Anchor link
Je moet verder kijken dan dat je neus lang is!!

Quote:
format character Description Example returned values
Day --- ---
d Day of the month, 2 digits with leading zeros 01 to 31
D A textual representation of a day, three letters Mon through Sun
j Day of the month without leading zeros 1 to 31
l (lowercase 'L') A full textual representation of the day of the week Sunday through Saturday
N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)
S English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j
w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
z The day of the year (starting from 0) 0 through 365
Week --- ---
W ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year)
Month --- ---
F A full textual representation of a month, such as January or March January through December
m Numeric representation of a month, with leading zeros 01 through 12
M A short textual representation of a month, three letters Jan through Dec
n Numeric representation of a month, without leading zeros 1 through 12
t Number of days in the given month 28 through 31
Year --- ---
L Whether it's a leap year 1 if it is a leap year, 0 otherwise.
o ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0) Examples: 1999 or 2003
Y A full numeric representation of a year, 4 digits Examples: 1999 or 2003
y A two digit representation of a year Examples: 99 or 03
Time --- ---
a Lowercase Ante meridiem and Post meridiem am or pm
A Uppercase Ante meridiem and Post meridiem AM or PM
B Swatch Internet time 000 through 999
g 12-hour format of an hour without leading zeros 1 through 12
G 24-hour format of an hour without leading zeros 0 through 23
h 12-hour format of an hour with leading zeros 01 through 12
H 24-hour format of an hour with leading zeros 00 through 23
i Minutes with leading zeros 00 to 59
s Seconds, with leading zeros 00 through 59
u Microseconds (added in PHP 5.2.2) Example: 654321
Timezone --- ---
e Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores
I (capital i) Whether or not the date is in daylight saving time 1 if Daylight Saving Time, 0 otherwise.
O Difference to Greenwich time (GMT) in hours Example: +0200
P Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3) Example: +02:00
T Timezone abbreviation Examples: EST, MDT ...
Z Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400
Full Date/Time --- ---
c ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00
r » RFC 2822 formatted date Example: Thu, 21 Dec 2000 16:01:07 +0200
U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) See also time()


en zoiets zal vast ook wel kunne met javascript

Dus zoek, probeer uit, toon aan...........
 
M V

M V

12/01/2011 22:08:12
Quote Anchor link
Noppes Homeland op 12/01/2011 22:03:30:
Je moet verder kijken dan dat je neus lang is!!

Quote:
format character Description Example returned values
Day --- ---
d Day of the month, 2 digits with leading zeros 01 to 31
D A textual representation of a day, three letters Mon through Sun
j Day of the month without leading zeros 1 to 31
l (lowercase 'L') A full textual representation of the day of the week Sunday through Saturday
N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)
S English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j
w Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday)
z The day of the year (starting from 0) 0 through 365
Week --- ---
W ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year)
Month --- ---
F A full textual representation of a month, such as January or March January through December
m Numeric representation of a month, with leading zeros 01 through 12
M A short textual representation of a month, three letters Jan through Dec
n Numeric representation of a month, without leading zeros 1 through 12
t Number of days in the given month 28 through 31
Year --- ---
L Whether it's a leap year 1 if it is a leap year, 0 otherwise.
o ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0) Examples: 1999 or 2003
Y A full numeric representation of a year, 4 digits Examples: 1999 or 2003
y A two digit representation of a year Examples: 99 or 03
Time --- ---
a Lowercase Ante meridiem and Post meridiem am or pm
A Uppercase Ante meridiem and Post meridiem AM or PM
B Swatch Internet time 000 through 999
g 12-hour format of an hour without leading zeros 1 through 12
G 24-hour format of an hour without leading zeros 0 through 23
h 12-hour format of an hour with leading zeros 01 through 12
H 24-hour format of an hour with leading zeros 00 through 23
i Minutes with leading zeros 00 to 59
s Seconds, with leading zeros 00 through 59
u Microseconds (added in PHP 5.2.2) Example: 654321
Timezone --- ---
e Timezone identifier (added in PHP 5.1.0) Examples: UTC, GMT, Atlantic/Azores
I (capital i) Whether or not the date is in daylight saving time 1 if Daylight Saving Time, 0 otherwise.
O Difference to Greenwich time (GMT) in hours Example: +0200
P Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3) Example: +02:00
T Timezone abbreviation Examples: EST, MDT ...
Z Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400
Full Date/Time --- ---
c ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00
r » RFC 2822 formatted date Example: Thu, 21 Dec 2000 16:01:07 +0200
U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) See also time()


en zoiets zal vast ook wel kunne met javascript

Dus zoek, probeer uit, toon aan...........



Volgens mij snap je mijn vraag niet. Dit hierboven weet ik allemaal en heb ik niet nodig. Het gaat om het refresh gedeelte, hoe ik dat voor elkaar krijg. Niet hoe ik cijfertjes en maanden op mijn scherm krijg maar hoe de connectie tussen select 1 en select 2 wordt gelegd.
Dus in select 1 is een bepaalde waarde aangeklikt en doormiddel van AJAX moet select 2 worden veranderd afhankelijk van wat er bij select 1 is gekozen. Het gaat om het refreshen dus. Nogmaals niet de codes om een datum maand of zoiets op te halen.
 
The Ultimate

The Ultimate

12/01/2011 22:08:38
Quote Anchor link
@noppes:
Dat is niet wat de TS bedoelt. De TS bedoelt dat wanneer je bij de ene form-select een maand selecteert (bijvoorbeeld februari) dat de andere form-select automatisch aanpast naar 29 dagen en dus geen 30 of 31. Dan moet je dus dmv ajax in elkaar bouwen.

Zelf heb ik overigens geen verstand van javascript/ajax dus kan je niet helpen. Maar dacht, ik verduidelijk de boel ff.
 
M V

M V

12/01/2011 22:10:36
Quote Anchor link
The Ultimate op 12/01/2011 22:08:38:
@noppes:
Dat is niet wat de TS bedoelt. De TS bedoelt dat wanneer je bij de ene form-select een maand selecteert (bijvoorbeeld februari) dat de andere form-select automatisch aanpast naar 29 dagen en dus geen 30 of 31. Dan moet je dus dmv ajax in elkaar bouwen.

Zelf heb ik overigens geen verstand van javascript/ajax dus kan je niet helpen. Maar dacht, ik verduidelijk de boel ff.


het is juist dat in elkaar bouwen. Ik weet niet hoe ik dat moet beginnen, ik heb wel wat geprobeerd maar mijn AJAX kennis is zeer minimaal, dus het werkte niet.
 
Bas Cost Budde

Bas Cost Budde

12/01/2011 23:45:42
Quote Anchor link
Dit hoeft helemaal niet ajax. Het aantal dagen per maand ligt al eeuwen vast.

Je zou in de onchange van de maandkiezer een functie kunnen uitvoeren die het aantal dagen van de gekozen maand ophaalt uit een array. Javascript, in tegenstelling tot php, blijft leven op de pagina, dus die array is beschikbaar. Houd in de dagselector van 1-31 aan boord, maar schakel op grond van het verkregen aantal dagen de 'rest' uit. Of, hanteer 4 dagselectors (van 28, 29, 30 en 31 dagen) en maak steeds de juiste zichtbaar.
 
M V

M V

13/01/2011 00:29:17
Quote Anchor link
Bas Cost Budde op 12/01/2011 23:45:42:
Dit hoeft helemaal niet ajax. Het aantal dagen per maand ligt al eeuwen vast.

Je zou in de onchange van de maandkiezer een functie kunnen uitvoeren die het aantal dagen van de gekozen maand ophaalt uit een array. Javascript, in tegenstelling tot php, blijft leven op de pagina, dus die array is beschikbaar. Houd in de dagselector van 1-31 aan boord, maar schakel op grond van het verkregen aantal dagen de 'rest' uit. Of, hanteer 4 dagselectors (van 28, 29, 30 en 31 dagen) en maak steeds de juiste zichtbaar.

Ik heb zoiets geprobeerd, maar niet met een array omdat ik daar niet zo goed in ben. En heb daar ook niet bij stil gestaan. Ik heb enkel wat vagen ideeën erbij hoe dit zou kunnen werken, ik ga er maar een nachtje over nadenken. Indien je nog meer tips hebt hoor ik het graag ^^
 
Ozzie PHP

Ozzie PHP

13/01/2011 01:40:14
Quote Anchor link
Noppes Homeland op 12/01/2011 21:10:59:
En zoals gewoonlijk weer eens te lui om op php.net te kijken:

Je moet verder kijken dan dat je neus lang is!!


Fijne reacties hoor Noppes. Als jij nou eerst eens goed leest wat de topic starter wil in plaats van dat je dit soort ongenuanceerde reacties gaat plaatsen...

@topic starter: ik heb een javascript code voor je gezocht die lijkt te doen wat jij wil: http://javascript.internet.com/time-date/date-selector.html
 
M V

M V

13/01/2011 10:55:06
Quote Anchor link
Ozzie PHP op 13/01/2011 01:40:14:
Noppes Homeland op 12/01/2011 21:10:59:
En zoals gewoonlijk weer eens te lui om op php.net te kijken:

Je moet verder kijken dan dat je neus lang is!!


Fijne reacties hoor Noppes. Als jij nou eerst eens goed leest wat de topic starter wil in plaats van dat je dit soort ongenuanceerde reacties gaat plaatsen...

@topic starter: ik heb een javascript code voor je gezocht die lijkt te doen wat jij wil: http://javascript.internet.com/time-date/date-selector.html


Dat is inderdaar precies wat ik nodig heb! Je bent super! Dankjewel =) (zitten zelfs de schrikkeljaren in zie ik)
 
Kris Peeters

Kris Peeters

13/01/2011 11:05:50
Quote Anchor link
@topic starter:

Je hebt een vreemde manier om select / option te gebruiken.
Een option werkt zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="waarde_die_je_wil_doorsturen">waarde_die_getoond_wordt</option>


Wanneer je een select doorstuurt (op submit gedrukt), wordt de value van de option doorgestuurd.

waarde_die_getoond_wordt hoeft absoluut geen verband te houden met waarde_die_je_wil_doorsturen.

bv. voor maanden kan je zo-iets doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<select name="month">
  <option value="1">Januari</option>
  <option value="2">Februari</option>
  ...
 
M V

M V

13/01/2011 11:09:36
Quote Anchor link
Kris Peeters op 13/01/2011 11:05:50:
@topic starter:

Je hebt een vreemde manier om select / option te gebruiken.
Een option werkt zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="waarde_die_je_wil_doorsturen">waarde_die_getoond_wordt</option>


Wanneer je een select doorstuurt (op submit gedrukt), wordt de value van de option doorgestuurd.

waarde_die_getoond_wordt hoeft absoluut geen verband te houden met waarde_die_je_wil_doorsturen.

bv. voor maanden kan je zo-iets doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<select name="month">
  <option value="1">Januari</option>
  <option value="2">Februari</option>
  ...


Ik weet van de values enzo af maar ik was aan het focusessen op het zorgen dat select 2 werd veranderd. Wat er dus in die opties stond maakt mij niet zo zeer uit. Maar ik heb inmiddels een script gekregen hier, wat doet dat ik zoek dat het moet doen. Uh... hoe sluit je een topid (nieuw op forum ^^'' )
 
Bas Cost Budde

Bas Cost Budde

13/01/2011 11:18:01
Quote Anchor link
Sja, we sluiten een topic niet echt. Het is geen helpdesk (dan zou ik het liever wel hebben, zaak opgelost -> kees kloost.)
 
M V

M V

23/01/2011 23:30:21
Quote Anchor link
Ik heb de code gebruikt van http://javascript.internet.com/time-date/date-selector.html die mij hierboven werd aangeboden, maar nu zit ik toch met een probleempje.
In onderstaande code wordt de value 31 meegegeven (of 28 of 30 afhankelijk van de maand)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
date_arr[0]=new Option("January",31);

Maar ik zou juist de maand code willen hebben (dus 01 02 03 etc), want als ik nu de value opvraag krijg ik dus enkel 38 30 of 31. Iemand een suggestie?

(de rest van de code staat overigens in de link)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.