Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Variablendefiniton

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Variablendefiniton

    Hallo alle,

    Ich bitte nochmal um eine Hilfe. In einem HTML-Formular mit vielen Datum-Eingaben funktioniert alles mit einem separatem php-Script bestens.

    Ich zeige das am Beispiel "Tag des Versendens", Variablenname : $dvsd

    Im Formular:

    HTML-Code:
    <select name="dvsd" id="dvsd"">
    Dann kommen die Tage:

    HTML-Code:
    <option value="1"  <?PHP if($day==1) echo "selected";?>1</option>
    <option value="2"  <?PHP if($day==2) echo "selected";?>2</option>
    usw.

    und im php-Script:

    PHP-Code:
    $tagvsd $_POST['dvsd']; 
    Aus $tagvsd wird durch Hinzunahme von Monat und Jahr incl. Punkten dazwischen das komplette Datum gemacht.


    Damit bei Falscheingaben bisherige Eingaben wiederholt werden, habe ich aus beiden Dateien ein gemeinsames Affenformular gemacht und wie folgt erweitert:

    HTML-Code:
    <select name="dvsd" id="dvsd" value="<?php echo isset($_POST['dvsd'])?>">
    Damit erhalte ich in allen Eingabefeldern: "Notice: Undefined variable in line ..." in allen <option value...>-Zeilen. Bedeutet das, dass alle Optionsfelder einzeln definiert werden müssen?

    Reichen diese Angaben zur Lösung des Problems? Wenn nicht, lade ich gerne das gesamte Affenformular hoch, es hat allerdings 1020 Zeilen.

    Danke im Voraus und fG

  • #2
    1, SELECT kennt kein value

    2. Mit echo isset($_POST['dvsd']) gibst du das Resultat von isset aus und ich glaube du beabsichtigst etwas anderes, nicht?

    3. Man sieht nicht wie du die options definierst.

    Nimm einen Datepicker, das macht alles viel einfacher.

    Kommentar


    • #3
      Das werde ich machen. Es gibt nur sehr viele davon. Hast du für meinen Zweck einen Vorschlag?
      Danke! .

      Kommentar


      • #4
        Statt Code immer wieder zu wiederholen solltest du Schleifen verwenden.

        https://de.wikipedia.org/wiki/Don%E2...epeat_yourself

        Kommentar


        • #5
          Anstatt dir das alles mühsam zusammen zu basteln, kannst du das Datum auch als fertiges Datum zur Auswahl anbieten, dann brauchst du auch kein Datepicker.

          Ich zeige es dir hier mal beispielhaft mit der Auswahl eines Flugdatums. Dabei soll erst ab morgen gebucht werden können und maximal 2 Monate in die Zukunft.
          Es gibt zwei unterschiedliche Datumsausgaben, damit du siehst was möglich ist. Ersteres Auswahlfeld hat den Wochentag als Kurzform und den Monat ausgeschrieben auf deutsch, das zweite Feld hat nur das Datum.
          Zurückgegeben wird das Datum jeweils als ISO Format, womit es direkt weiter verwendet werden kann. Hier mal als GET, so siehst du die Parameter auch gleich in der URL.
          Die IntlDateFormatter Klasse findest du im Handbuch beschrieben.

          PHP-Code:
          <?php
          $dt 
          = new dateTime('tomorrow');
          $dateend = new dateTime('tomorrow + 2 month');
          $fmt datefmt_create(
              
          'de_DE',
              
          IntlDateFormatter::FULL,
              
          IntlDateFormatter::FULL,
              
          'Europe/Berlin',
              
          IntlDateFormatter::GREGORIAN,
              
          "E, d. MMMM y"
          );
          // Abflugdaten für options erstellen für 2 Monate in der Zukunft

          $optionDeparture null;
          do{
              
          $optionDeparture .= '<option  value="' $dt->format('Y-m-d') . '">' datefmt_format($fmt$dt) . '</option>';
              
          $dt->modify('+ 1 day');
          }while (
          $dt $dateend);

          // Rückflugdaten für options erstellen

          $dt = new dateTime('tomorrow + 1day');
          $dateend = new dateTime('tomorrow + 1day + 2 month');

          $optionReturnflight null;
          do{
              
          $optionReturnflight .= '<option  value="' $dt->format('Y-m-d') . '">' $dt->format('d.m.Y') . '</option>';
              
          $dt->modify('+ 1 day');
          }while (
          $dt $dateend);
          ?>

          <!DOCTYPE html>
          <html>

          <head>
              <meta charset="UTF-8">
              <title>Test Formulardaten Selectfelder</title>
          </head>

          <body>
              <form>
                  <label>Abflug</label>
                  <select name="departure">
                      <?= $optionDeparture ?>
                  </select>

                  <label>Rückflug</label>
                  <select name="returnflight">
                      <?= $optionReturnflight ?>
                  </select>
                  <input type="submit" name="submit" value="submit">
              </form>
          </body>

          </html>

          Kommentar

          Lädt...
          X