Ulrich: Formular: Mehrere Submit-Felder mit dem gleichen Namen?

Hallo!

Ich möchte ein Formular mit mehreren Submit-Feldern ausstatten. Spricht etwas dagegen, dass sie alle den gleichen Namen haben?

Warum die Frage: Nach dem anklicken eines der Submit-Felder möchte ich unter PHP mit einer switch-Verzweigung klären, wie es weiter geht. Wenn das mit dem gleichen Namen geht, könnte das etwa so aussehen:

  
<form action="Aktion.php" method="post">  
  <input type="submit" name="Senden" value="Get First">  
  <input type="submit" name="Senden" value="Get Last">  
  <input type="submit" name="Senden" value="Search">  
</form>  

In Aktion.php könnte sich dann folgende Verzweigung finden:

  
switch($_POST['Senden']) {  
  case 'Get First': ...  
  case 'Get Last': ...  
  case 'Search': ...  
}  

  1. Hi,

    Ich möchte ein Formular mit mehreren Submit-Feldern ausstatten. Spricht etwas dagegen, dass sie alle den gleichen Namen haben?

    Kommt drauf an, was du anschließend mit den gesendeten Daten vor hast.

    In Aktion.php könnte sich dann folgende Verzweigung finden:

    switch($_POST['Senden']) {

    case 'Get First': ...
      case 'Get Last': ...
      case 'Search': ...
    }

      
    Die wäre dann direkt an die Button-Beschriftung gebunden.  
    Wenn die immer gleich ist, kein Problem. Und auch wenn sie sich mal ändern sollte, immer noch kein Problem, wenn du die Ausgabe der Button-Beschriftung und die Auswertung an einer Stelle zentral konfigurierbar machst.  
      
    Problematisch wird es erst dann, wenn die Seite ggf. irgendwann mal mehrsprachig werden soll. Dann ist es idR. günstiger, den unveränderlichen individuellen Button-Namen als Entscheidungskriterium her zu nehmen, anstatt die unterschiedlichen Sprachversionen der Beschriftungen in der Auswertung berücksichtigen zu müssen.  
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    
    1. Moin,

      Problematisch wird es erst dann, wenn die Seite ggf. irgendwann mal mehrsprachig werden soll. Dann ist es idR. günstiger, den unveränderlichen individuellen Button-Namen als Entscheidungskriterium her zu nehmen, anstatt die unterschiedlichen Sprachversionen der Beschriftungen in der Auswertung berücksichtigen zu müssen.

      In dem Falle könnte man das doch direkt mit Button-Elementen lösen, oder? Also ungefähr so (wenn $multilanguage jetzt mal ein hypothetisches Array mit allen Sprachen und Texten wäre^^):

        
      <form action="..." method="post">  
      <button type="submit" name="Senden" value="GetFirst">[code lang=php]<?php echo $multilanguage["en"][123] ?>
      ~~~ </button>  
      <button type="submit" name="Senden" value="GetLast">`<?php echo $multilanguage["en"][124] ?>`{:.language-php} </button>  
      <button type="submit" name="Senden" value="Search">`<?php echo $multilanguage["en"][125] ?>`{:.language-php} </button>  
      [/code]  
        
        
      Grüße Marco
      
      1. Hi!

        <form action="..." method="post">

        <button type="submit" name="Senden" value="GetFirst">[code lang=php]<?php echo $multilanguage["en"][123] ?>

        
        > [...][/code]  
          
        Im PHP-Code fehlt noch jeweils ein htmlspecialchars(), sonst gibt das einen [Kontextwechsel](http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel)-Fehler.  
          
          
        Lo!
        
      2. Hi,

        In dem Falle könnte man das doch direkt mit Button-Elementen lösen, oder?

        Wenn einem egal ist, ob es in uralten Internet Explorern funktioniert …

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      3. Hallo

        Problematisch wird es erst dann, wenn die Seite ggf. irgendwann mal mehrsprachig werden soll. Dann ist es idR. günstiger, den unveränderlichen individuellen Button-Namen als Entscheidungskriterium her zu nehmen, anstatt die unterschiedlichen Sprachversionen der Beschriftungen in der Auswertung berücksichtigen zu müssen.

        In dem Falle könnte man das doch direkt mit Button-Elementen lösen, oder?

        Dazu brauchst du keine Buttons.

        <form action="..." method="post">
        <button type="submit" name="Senden" value="GetFirst">[code lang=php]<?php echo $multilanguage["en"][123]; ?>

        
        > [/code]  
          
        Du kannst auch gleich den value für einen "richtigen" Button `<input type="submit" value="[code lang=php]<?php echo htmlspecialchars($multilanguage["en"][123]) ?>`{:.language-html}" />[/code] festlegen. Bei der Prüfung muss der übergebene dann natürlich gegen die Vorgaben verglichen werden.  
          
        Tschö, Auge  
        
        -- 
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.  
        Terry Pratchett, "Wachen! Wachen!"  
          
        ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}  
          
        [Veranstaltungsdatenbank Vdb 0.3](http://termindbase.auge8472.de/)