2017-02-13 3 views
0

Also das ist nicht wirklich ein Problem, das ich habe, aber ich hatte gehofft, ein Feedback zu bekommen, wie ich die Formulardaten verarbeitet, die an den Server gesendet werden.HTML 5 Form Element Wert

Ich habe es mit gigantischer Form mit Tonnen von Auswahlboxen zu tun, jede mit einer großen Anzahl von Optionen.

Der Einfachheit halber wollen wir sagen, das ist, wie die Form wie folgt aussieht:

<form action="demo_form.php"> 
    <select name="cars"> 
    <option value="volvo">Volvo XC90</option> 
    <option value="saab">Saab 95</option> 
    <option value="merc">Mercedes SLK</option> 
    <option value="audi">Audi TT</option> 
    </select> 
    <input type="submit" value="Submit"> 
</form> 

Auf dem Server muss ich unter anderem, einen PDF-Bericht generieren. Offensichtlich wird der obige Code "Volvo" anstelle von "Volvo XC90" senden, was ich den Endbenutzern in Berichten anzeigen muss, und so weiter.

Derzeit (wie immer, aber ich habe gerade gemerkt, dass dies ein Schmerz ist angesichts der Größe der Form ist), habe ich eine Funktion geschrieben, um die Werte wieder "hübsch" zu machen. Etwas wie dieses:

function returnPretty($uglyArr) { 
    $pretty_csv = array(
    "volvo"=>"Volvo XC90", 
    "saab"=>"Saab 95", 
    "merc"=>"Mercedes SLK", 
    "audi"=>"Audi TT", 
); 

    $prettyArr = array(); 
    foreach($uglyArr as $column) { 
    if($pretty_csv[$column]) { 
     $value = $pretty_csv[$column]; 
     array_push($prettyArr, $value); 
    } else { 
     array_push($prettyArr, $column); 
    } 
    } 
    return $prettyArr; 
} 

Gibt es eine bessere Weise, dies zu tun? Vor allem, wenn ich mit NoSQL arbeite.

Danke.

+0

Dies ist, wie viele Menschen es tun. In einigen meiner Skripte verwende ich das gleiche assoziative Array, um das Menü zu erstellen und die Einreichung zu bearbeiten. – Barmar

+3

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da Fragen zu Codierungsstil und Anwendungsdesign für codereview.stackexchange.com besser geeignet sind. – Barmar

+0

Sorry, ich wusste nicht einmal, dass es existiert! – Muhammad

Antwort

0

Anstatt mit Zeichenfolgen zu spielen, sollten Sie mit Zahlen spielen. Weil Zahlen von Prozessor/Speicher viel schneller & als die Zeichenfolge verarbeiten. Ersetzen Sie einfach volvo auf 0 wie folgt.

<form action="demo_form.php"> 
    <select name="cars"> 
    <option value="0">Volvo XC90</option> 
    <option value="1">Saab 95</option> 
    <option value="2">Mercedes SLK</option> 
    <option value="3">Audi TT</option> 
    </select> 
    <input type="submit" value="Submit"> 
</form> 

Seite Diese für Server ..

function returnPretty($uglyArr) { 
     $pretty_csv = array(
     0 =>"Volvo XC90", 
     1 =>"Saab 95", 
     2 =>"Mercedes SLK", 
     3 =>"Audi TT", 
    ); 

     $prettyArr = array(); 
     foreach($uglyArr as $column) { 
     if($pretty_csv[$column]) { 
      $value = $pretty_csv[$column]; 
      array_push($prettyArr, $value); 
     } else { 
      array_push($prettyArr, $column); 
     } 
     } 
     return $prettyArr; 
    } 
+0

Danke dafür. Ich mache das, wo es möglich ist, weil ich es sonst sehr schade finde Updates zu machen. – Muhammad

+0

Ja. Eine Menge Arbeit zu tun .. aber sobald es fertig ist .. wird es mit 60 bis 70% optimieren – Vinay

+0

Verkauft! Etwas für die nächste Iteration. – Muhammad