Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Arrayfeldwert ist trotz Zuweisung nicht vorhanden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Arrayfeldwert ist trotz Zuweisung nicht vorhanden

    Hallo allerseits,

    mein Problem in eine sprechende Überschrift zu packen war nicht so einfach darum hier nochmal eine Erläuterung.
    Also ich hab eine Dropdownbox deren option Werte mit Hilfe eines Arrays und einer Schleife gefüllt werden. Wenn dann die Werte aus dem Dropdownfeld dann mittels Formular abgeschickt werden, wird die Seite neu geladen und eigentlich sollte dann mit einer if/else Abfrage ermittelt werden welchen wert ich zuvor ausgewählt habe. Bei anderen Dropdownboxen von mir funktionierte das auch nur in dem vorliegenden Beispiel hab ich irgendwas übersehen und finde den Fehler nicht. Anbei die Quellcodes:

    Funktion bzw. Methode hier werden die Werte zugewiesen
    PHP-Code:
    // History Dropdown Box für die Suchleiste erzeugen
            
    public function getHistoryList()
            {
                
    $history = array(
                                array(
    strtotime("midnight"),"Heute"),
                                array(
    strtotime("-1 day"),"Gestern"),
                                array(
    strtotime("-2 days"),"Vorgestern"),
                                array(
    strtotime("-1 week"),"Letzte Woche"),
                                array(
    strtotime("-1 month"),"Letzter Monat"),
                                array(
    strtotime("-1 year"),"Letztes Jahr"),
                                array(
    0000000000,"Alle"
                                );                                           
                return 
    $history;                    
            } 
    Und hier der Code für die Dropdownbox
    PHP-Code:
    echo "<select class=\"searchbar_dropbox\" name=\"history\">
               "
    ;
            
    $historylist $framework->getHistoryList();
            foreach(
    $historylist as $history)
            {
                if((isset(
    $_POST['history'])) && ($_POST['history'] === $history[0]))
                {   
                    echo 
    "<option value=\"" $history[0] . "\" selected=\"selected\">" $history[1] . "</option>";
                }
                else
                {   
                    echo 
    "<option value=\"" $history[0] . "\">" $history[1] . "</option>";
                }
            }
            echo 
    "
               </select>"

    Mein Problem ist nun folgendes.
    In der IF Abfrage kommt beim Vergleich kein true Zustande, obwohl nach dem Absenden des Formulars immer genau ein Wert passen muss, da ja auch nur Werte daraus abgesendet werden.
    Selbst mit einem Vergleich mit == funktioniert es nicht.

    Hat jemand eine Idee?
    Gerne auch einen Vorschlag wie man dann schöner lösen kann, aber in erster Linie würde ich gerne in Erfahrung bringen was ich übersehen habe.

    Danke für Eure Mühe..


  • #2
    Kontrolliere den HTML-Code - ob da wirklich das steht, was du beabsichtigt hast.
    Kontrolliere die übergebenen Daten mittels var_dump/print_r von $_POST/$_GET.

    Kurzum: Lerne Debuggen.

    Kommentar


    • #3
      Edit: Augen auf beim Blumenkauf... x)

      Dump mal $_POST bzw. $_POST['history']. Es wird wohl nicht das drin stehen was du vermutest...
      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

      Kommentar


      • #4
        == musst du aber schon benutzen, da $history[0] ein Integer und $_POST['history'] ein String ist.

        Zeige doch mal den HTML-Quelltext des kompletten Formulars, vielleicht liegt da noch ein Fehler.
        @fschmengler - @fschmengler - @schmengler
        PHP Blog - Magento Entwicklung - CSS Ribbon Generator

        Kommentar


        • #5
          OK here we go.
          Natürlich hab ich mir bevor ich hier angefragte hatte mir schon alles anzeigen lassen, zugegebenermassen allerdings nich über var_dump sondern print_r(). Notiz an mich sollte mir dringend das var_dump angewöhnen.

          Sodele hier dann der Output von HTML Ausgabe als Bild angehängt und HTML Quelltext.

          PHP-Code:
          <ul class="menu2">
                      
                   <
          li class="button1">
                    <
          form action="/globlog/sites/index.php?page=deliverybook" method="post">

                     <
          select class="searchbar_dropbox" name="ac">
                      <
          option value="default">Alle</option><option value="12">AC Mail</option><option value="13">AC Express</option><option value="11">AC Eco</option><option value="15">AC Debrecen</option><option value="14">AC Budapest</option>
                     </
          select>
                    </
          li>
                    <
          li class="button1">
                     <
          select class="searchbar_dropbox" name="history">

                     <
          option value="1281996000">Heute</option><option value="1281939503">Gestern</option><option value="1281853103">Vorgestern</option><option value="1281421103">Letzte Woche</option><option value="1279347503">Letzter Monat</option><option value="1250489903">Letztes Jahr</option><option value="0">Alle</option>
                     </
          select>
                    </
          li>
                    <
          li class="button1">
                     <
          input id="SEARCHBAR" type="text" name="search" value="" />

                    </
          li>
                    <
          li class="button1">
                     <
          input class="searchbar_button" type="submit" name="submit" value="GO" />
                    </
          form>
                   </
          li>
                      <
          pre>array(4) {
            [
          "ac"]=>
            
          string(7"default"
            
          ["history"]=>
            
          string(10"1281853165"
            
          ["search"]=>
            
          string(0""
            
          ["submit"]=>
            
          string(2"GO"
          }
          </
          pre>
                   </
          ul
          Edit:
          Während ich das poste hab ich den Fehler gefunden. Die Werte in den Dropdownmenüs ändern sich. Ich hatte ja strtotime() genutzt und hab irgendwie vollkommen verdrängt, dass sich diese Werte ja dauernd ändern.

          Hab das jetzt in der Methode korrigiert, in dem ich den einzelnen Subarrays mit strtotime() noch als Parameter eine fixen Wert mitgegeben habe. Dann funktioniert es.
          PHP-Code:
          // History Dropdown Box für die Suchleiste erzeugen
                  
          public function getHistoryList()
                  {
                      
          $midnight strtotime("midnight");
                      
          $history = array(
                                      array(
          $midnight,"Heute"),
                                      array(
          strtotime("-1 day",$midnight),"Gestern"),
                                      array(
          strtotime("-2 days",$midnight),"Vorgestern"),
                                      array(
          strtotime("-1 week",$midnight),"Letzte Woche"),
                                      array(
          strtotime("-1 month",$midnight),"Letzter Monat"),
                                      array(
          strtotime("-1 year",$midnight),"Letztes Jahr"),
                                      array(
          0000000000,"Alle")
                                      );                                           
                      return 
          $history;                    
                  } 
          Angehängte Dateien

          Kommentar

          Lädt...
          X