Antworten auf deine Fragen:
Neues Thema erstellen

Formulareingaben werden nicht vollständig übergeben

Biernase

Nicht mehr ganz neu hier

Ich habe ein auf HTML basierendes Formular geschrieben. Die Eingaben werden an ein PHP-Script übergeben, welches die Eingaben dem Nutzer noch einmal in einer Zusammenfassung anzeigt und als E-Mail versendet.

Im Grunde funktioniert das auch alles - zumindest bei statischen Eingaben. Das Formular verfügt auch über ein Auswahlfeld, welches das Selektieren mehrerer Auswahlpunkte zuläßt. Leider wird bei einer Mehrfachselektion nur eine Auswahl (die als letzes ausgewählt wurde) übergeben.

Der Code des Auswahlfeldes:
Code:
<select name="serviceleistung" size="2" multiple>
              <option selected>Leistung 1</option>
              <option>Leistung 2</option>
              <option>Leistung 3</option>
              <option>Leistung 4</option>
              <option>Leistung 5</option>
</select>

Die Auswahl wird mittels $s_leistung = $_POST['serviceleistung']; an das PHP-Script übergeben, dort über "Selektierte Leistungen: $s_leistung\n\n" . in eine E-Mail integriert und durch echo '<b>Ihre gew&auml;hlte(n) Leistung(en):</b> ' . $s_leistung . ''; als Teil einer Zusammenfassung auf dem Bildschirm ausgegeben.
 

owieortho

Aktives Mitglied

AW: Formulareingaben werden nicht vollständig übergeben

Schon mal probiert, was angenommen wird, wenn Du den options einen value gibst?
 

Biernase

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Danke erstmal. Ich habe mir eure Links angesehen. Der Code lautet nun wie folgt.

Formular:
Code:
<select name="serviceleistung[]" size="2" multiple>
              <option value="1" selected>Leistung 1</option>
              <option value="2">Leistung 2</option>
              <option value="3">Leistung 3</option>
              <option value="4">Leistung 4</option>
              <option value="5">Leistung 5</option>
            </select>

Datenübergabe an PHP:
Code:
$s_leistung = $_POST['serviceleistung'];
  if ($s_leistung)
    {foreach ($s_leistung as $t);}

Ausgabe am Bildschirm:
Code:
echo '<b>Ihre gew&auml;hlte(n) Leistung(en):</b> ' . $s_leistung;

Sowohl in der Zusammenfassung als auch in der E-Mail wird anstatt der selektierten Optionen Array ausgegeben. Habt ihr eine Idee?
 

MrAzrael

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Danke erstmal. Ich habe mir eure Links angesehen. Der Code lautet nun wie folgt.

Formular:
Code:
<select name="serviceleistung[]" size="2" multiple>
              <option value="1" selected>Leistung 1</option>
              <option value="2">Leistung 2</option>
              <option value="3">Leistung 3</option>
              <option value="4">Leistung 4</option>
              <option value="5">Leistung 5</option>
            </select>

Datenübergabe an PHP:

Code:
if(isset($_POST['serviceleistung']) && ($_POST['serviceleistung']!='')){
   $s_leistung=array();
   for($i=0;$i<$_POST['serviceleistung'];$i++){
      $s_leistung[$i] = $_POST['serviceleistung'];
      // alternativ für die Ausgabe direkt am Bildschirm
     echo '<b>Ihre gew&auml;hlte(n) Leistung(en):</b> ' . $_POST['serviceleistung'];
   }
}



Ausgabe am Bildschirm direkt:

Code:
echo $s_leistung[0]; // 0-3 für die Leistungen
 

Biernase

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Dann erscheint am Bildschirm

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 71 bytes) in <... File ....php> on line 13

Code:
if(isset($_POST['serviceleistung']) && ($_POST['serviceleistung']!='')){
   $s_leistung=array();
   for($i=0;$i<$_POST['serviceleistung'];$i++){
      [b][u]$s_leistung[$i] = $_POST['serviceleistung'];[/u][/b]
   }
  }
(Zeile 13 ist fett markiert)
 

MrAzrael

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Code:
if(isset($_POST['serviceleistung']) && ($_POST['serviceleistung']!='')){
   $s_leistung=array();
   $max = count($_POST['serviceleistung']);
   for($i=0;$i<$max;$i++){
      [b][u]$s_leistung[$i] = $_POST['serviceleistung'][$i];[/u][/b]
   }
  }

mein Fehler ... diesmal getestet
 

Biernase

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Der Fehler erscheint nicht mehr. Nun wird wieder Array anstatt des Wertes der Variablen $s_leistung ausgegeben.
 

saila

Moderatorle

AW: Formulareingaben werden nicht vollständig übergeben

Hi,

wenn man nicht weis, wie man die Werte gelangt, welche mit einem Formular übergeben wurden, dann nimmt man folgendes als Ansatz:

PHP:
<?php
foreach($_POST as $k => $v) {
 if(is_array($v)) {
  echo '<pre>'; print_r($v); echo '</pre>';
 }
}
?>

und damit man nicht in die Verlegenheit gerät, eine ewig laufende Schleife zu generieren, wählt man while oder foreach zur Verarbeitung. Alternativ würde sich für die for-Schleife ein vorheriger count() auf die Anzahl der Elemente eines Array's, um diesen Wert als max.-Parameter in die for-Schleife zu übergeben ;)
 

MrAzrael

Nicht mehr ganz neu hier

AW: Formulareingaben werden nicht vollständig übergeben

Der Fehler erscheint nicht mehr. Nun wird wieder Array anstatt des Wertes der Variablen $s_leistung ausgegeben.

Das Array ist die Sammlung der einzelnen Werte, um die einen einzelnen Wert anzeigen zu lassen musst du die Nummer des Wertes in der [] angeben, dabei fängt das Array immer bei 0 an, es sei denn das wurde anders festgelegt

$s_leistung[0] bis $s_leistung[4] = das zeigt dann die entsprechenden Werte
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben