Zur Navigation

Option Box - Wert wird nicht gespeicht

1 webuser

Hallo,
bei diesem Formular versuche ich eine Option Box einzurichten.
Aber der selektierte Wert wird nicht gespeichert.

http://aktuell.de.selfhtml.org/artikel/php/formularvalidierung/beispielformular.php?showsource=1


VG
Webuser

<label for="grund">Grund:</label>
       <select style="margin-left:20px;">
      <option value="?" <?php if ( ("{$values['grund']}" == "?" ) echo 'selected="selected"'; ?>Grund auswählen</option>
     <option value="eins" <?php if ("{$values['grund']}" == "eins" ) echo 'selected="selected"'; ?>eins</option>
     <option value="zwei" <?php if ("{$values['grund']}" == "zwei" ) echo 'selected="selected"'; ?>zwei</option>



                </select>

07.09.2014 08:56

2 Jörg Kruse

Deinem select fehlt das name Attribut.

<select name="grund" style="margin-left:20px;">

07.09.2014 14:07

3 webuser

Hallo,
danke für den Hinweis.
Ich bekomme die Variable gezeigt (oben mit dem Echo)
aber der Wert wird nicht selektiert.

Gruß
Webuser
echo {$values['grund']}


   <label for="grund">Grund:</label>
     <select name="grund"  style="margin-left:20px;" id="grund">
     <option value="?" <? if("{$values['grund']}"=='?') echo 'selected="selected"'; ?>Auswahl</option>
     <option value="eins" <? if("{$values['grund']}"=='eins') echo 'selected="selected"'; ?>eins</option>
     <option value="zwei" <? if("{$values['grund']}"=='zwei') echo 'selected="selected"'; ?>zwei</option>
                    </select>
                         {$messages['grund']}  </div>

07.09.2014 14:21

4 Jörg Kruse

Solche Konstrukte ...:

"{$values['grund']}"

... werden innerhalb von Heredocs verwendet, aber nicht innerhalb von PHP-Code. Die Anführungszeichen und geschweiften Klammern um die Array-Variable sind dort fehl am Platz.

Außerdem würde ich den PHP-Code nicht mit einem bloßen "<?", sondern mit "<?php" einleiten

<option value="eins" <?php if($values['grund']=='eins') echo 'selected="selected"'; ?>eins</option>


Edit:

auch im Heredoc gehören die Anführungszeihen nicht zur Array-Variablen, sondern gehören zum HTML-Code, wie z.B. hier zum value Attribut:

<input type="text" name="date" value="{$values['date']}" class="blockelement" />

07.09.2014 14:37 | geändert: 07.09.2014 14:42

5 webuser

Hallo,
danke, habe ich probiert. Dann bleibt die Seite komplett weiss.
In
{$values['grund']}
steht der sie Variable drin.
ohne die Klammern kommt nichts
Screenshot vom Quelltext per Mail.


Gruß
Webuser

07.09.2014 15:30

6 Jörg Kruse

Auf dem Screenshot, den du mir zugesendet hast, ist ungültiger PHP-Code zu sehen

Ich habe oben ja bereits geschrieben, wie der PHP-Code ausschauen muss:

<?php if($values['grund']=='eins') echo 'selected="selected"'; ?>

Wenn du das $values['grund'] komplett weglässt, dann fehlt der erste Vergleichspunkt, und PHP wirft einen Fatal Error.

Dass nur eine weiße Seite sichtbar ist, liegt vermutlich daran, dass bei dir display_errors und / oder error_reporting so konfiguriert sind, dass keine Fehler ausgegeben werden. Bei der Entwicklung von PHP-Code würde ich mir alle Fehler ausgeben lassen:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

... oder zumindest schwerwiegende Fehler:

<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
ini_set("display_errors", 1);
?>

Es wäre übrigens besser, Codeabschnitte als Text zu kopieren und hier einzufügen, statt mir einen Screenshot zu zuzusenden. Dann können auch andere, die auf diesen Thread stoßen, diesen nachvollziehen.

In
{$values['grund']}
steht der sie Variable drin.
ohne die Klammern kommt nichts

Das hängt wie gesagt vom Kontext ab! Die geschweiften Klammern benötigst du innerhalb des Heredocs. Innerhalb eines PHP-Code-Abschnitts, also zwischen "<?php" und "?>" benötigst du sie nicht!

07.09.2014 18:00

7 webuser

Hallo,
mit dem Error - Ceck Code kamen noch andere Fehler.
Das Feld $values['grund'] ist aber immer noch leer.
Ich breche das jetzt hier ab.
Im Web hab ich ein html5 Formular
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html
gefunden.
Das kann man besser anpassen.

Danke und einen schönen Tag noch

Gruß
Webuser

07.09.2014 21:05

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]