select data in drop-down box

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • kirke

    #1

    select data in drop-down box

    I have a two text box and one select box.

    two text box will be filled with date values. (in the form of
    dd-mm-year)
    First text box is called "start date"
    Second is "end date"

    Thus, I want to put dates between "start date" and "end date" in select
    box.

    Is there any way to put automatically in option field?
    My idea is, first calculate the date difference
    and then, add date till startdate + difference.
    Thx.

  • Rik

    #2
    Re: select data in drop-down box

    kirke wrote:
    I have a two text box and one select box.
    >
    two text box will be filled with date values. (in the form of
    dd-mm-year)
    First text box is called "start date"
    Second is "end date"
    >
    Thus, I want to put dates between "start date" and "end date" in
    select box.
    >
    Is there any way to put automatically in option field?
    My idea is, first calculate the date difference
    and then, add date till startdate + difference.
    It is possible with PHP when that 'start' date and the 'end' date are known
    BEFORE the user requests that page. Simply generate all possible dates
    between those two values, and commit them to select boxes. If they're not
    known, or they cross month or year barriers, you'll have to rely on
    javascript to limit the options (and make unlimited options available
    without javascript, on a date outside the possibilities you will produce an
    error on submitting).

    Ofcourse, on submitting, whether javascript is enabled or not, you'll
    always have to check start, interim, and end date on submitting to make
    sure it's valid.

    On HOW to make a date confirm by js, I'd suggest a trip to
    comp.lang.javas cript.

    --
    Grtz,

    Rik Wasmus


    Comment

    • kirke

      #3
      Re: select data in drop-down box

      assume that I know the start and end date already.
      Then How can I generate dates between two dates?


      Rik wrote:
      kirke wrote:
      I have a two text box and one select box.

      two text box will be filled with date values. (in the form of
      dd-mm-year)
      First text box is called "start date"
      Second is "end date"

      Thus, I want to put dates between "start date" and "end date" in
      select box.

      Is there any way to put automatically in option field?
      My idea is, first calculate the date difference
      and then, add date till startdate + difference.
      >
      It is possible with PHP when that 'start' date and the 'end' date are known
      BEFORE the user requests that page. Simply generate all possible dates
      between those two values, and commit them to select boxes. If they're not
      known, or they cross month or year barriers, you'll have to rely on
      javascript to limit the options (and make unlimited options available
      without javascript, on a date outside the possibilities you will produce an
      error on submitting).
      >
      Ofcourse, on submitting, whether javascript is enabled or not, you'll
      always have to check start, interim, and end date on submitting to make
      sure it's valid.
      >
      On HOW to make a date confirm by js, I'd suggest a trip to
      comp.lang.javas cript.
      >
      --
      Grtz,
      >
      Rik Wasmus

      Comment

      • Rik

        #4
        Re: select data in drop-down box

        kirke wrote:
        assume that I know the start and end date already.
        Then How can I generate dates between two dates?

        Well, that should be easy, whipped together something for you (untested):

        /* $start & $end = UNIX timestamps
        $step = number of second between steps (60*60*24 for dates offcourse)
        $format = returned format as in strftime()
        $include_limits = boolean wether the start and end dates should be
        included */

        function generate_dates( $start,$end,$st ep = 86400,$format =
        '',$include_lim its = false){
        $start_i = intval($start);
        $end_i = intval($end);
        if($start_i!=$s tart || $end_i != $end){
        trigger_error(' No valid timestamps given.');
        return false;
        }
        if($start_i $end_i){
        trigger_error(' Start date is later then End date.');
        return false;
        }
        if(!is_int($ste p) || $step <= 0){
        trigger_error(' Step is either not an integer or zero or less.');
        return false;
        }
        $return = array();
        if($include_lim its({
        $return[] = $start;
        }
        $current = $start_i + $step;
        while($current < $end_i){
        $return[] = strftime($forma t,$current);
        $current = ($current + $step);
        }
        if(end($return) < $end_i){
        $return[] = $end;
        }
        return $return;
        }

        --
        Rik Wasmus


        Comment

        Working...