PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

26-10-2015, 14:49
|
sascha78
Registrierter Benutzer
|
|
Registriert seit: Oct 2015
Beiträge: 3
|
|
dropdown auswahl selected machen
hallo ich weiss die überschrifft hört sich sehr einfach an allerdings ist es nicht ganz so einfach. ich habe ein array mit zwei einträgen. ich kann mir die daten über ein dropdown menü auswählen und über einen hole button in mein formular einlesen. allerdings kommt jetzt das problem das dropdown menü springt wieder automatisch auf den ersten eintrag vom array zurück. ich möchte es aber so haben das die auswahl auch noch drücken von hole im dropdown stehen bleibt.
<?php
function def($inputname)
{
global $aktuelleAdresse;
if (!empty($aktuelleAdresse[$inputname])) {
echo $aktuelleAdresse[$inputname];
}
}
function speichern()
{
$adressen[$_POST["aktuelleAdresse"]] = [
"vorname" => $_POST["vorname"],
"nachname" => $_POST["nachname"],
"adresse" => $_POST["adresse"],
"hausnummer" => $_POST["hausnummer"],
"plz" => $_POST["plz"],
"ort" => $_POST["ort"]
];
file_put_contents("gepackteDaten.txt", serialize($adressen));
}
function auslesen()
{
return unserialize(file_get_contents("gepackteDaten.txt"));
}
function holen()
{
global $adressen;
$i = $_POST["aktuelleAdresse"];
return $adressen[$i];
}
function selected($adressen)
{
if(!empty($_POST["holen"]) && $_POST["holen"]== $adressen)
{
echo "selected";
}
}
function neu()
{
$adressen[] = [];
}
$adressen = auslesen();
if(!empty($_POST["speichern"])) {
speichern();
}
if(!empty($_POST["holen"]))
{
$aktuelleAdresse = holen();
}
jetzt kommt noch der html teil
<?php include ("vergleich.php");?>
<form action = "index.php" method = "post">
<b>Bitte den Datensatz Auswaehlen</b><br/>
<p><select name="aktuelleAdresse">
<?php
for($i= 0; $i<count($adressen); $i++)
{
echo '<option value="'.$i.'"selected>'.$adressen[$i]["vorname"]."</option>";
}
?>
</select>
<input type="submit" name="holen" value="holen" /></p>
<br/>
<label for="vorname">Vorname:
<input type="text" name="vorname" value="<?php def("vorname")?>">
</label>
<label for="nachname">Nachname:
<input name="nachname" value="<?php def("nachname") ?>">
</label>
<br/>
<br/>
<label for="adresse">Adresse:
<input name="adresse" value="<?php def("adresse") ?>">
</label>
<label for="hausnummer">Hausnummer:
<input name="hausnummer" value="<?php def("hausnummer") ?>">
</label>
<br/>
<br/>
<label name="plz">PLZ:
<input name="plz" value="<?php def("plz") ?>">
</label>
<label name="ort">Ort:
<input name="ort" value="<?php def("ort") ?>">
</label>
<p><input type="submit" name="speichern" value="speichern"/>
<input type="reset" name="reset" value="neu" /></p>
vielen dank schon im vorraus und seht es mir nach wenn der post nicht ganz konform ist. ist mein erster
|

26-10-2015, 15:07
|
 |
mermshaus
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 452
|
|
Willkommen im Forum.
Nicht jedes option-Element mit der selected-Eigenschaft versehen, sondern nur dasjenige, bei dem value dem (etwaigen, muss ja nicht gesetzt sein) Wert in $_POST['aktuelleAdresse'] entspricht.
|

26-10-2015, 15:54
|
sascha78
Registrierter Benutzer
|
|
Registriert seit: Oct 2015
Beiträge: 3
|
|
leider hat mir das nicht geholfen ich weiss was du meinst aber ich komme nicht drauf wo ich dann die selected deklaration machen muss ich werde nochmal schauen ob ich was finde. aber danke für die schnelle antwort. achja und übrigens habe mittlerweile alle selected aussagen aus dem programm genommen.
schönen tag noch
|

26-10-2015, 18:19
|
 |
mermshaus
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 452
|
|
Ungefähr so:
PHP-Code:
for($i= 0; $i<count($adressen); $i++) { $selected = '';
if (isset($_POST['aktuelleAdresse']) && $i === (int)$_POST['aktuelleAdresse']) { $selected = ' selected'; }
echo '<option value="'.$i.'"'.$selected.'>'.$adressen[$i]["vorname"]."</option>"; }
PS: Schau dir mal Kontextwechsel an: Programmiertechnik/Kontextwechsel ? SELFHTML-Wiki Du solltest noch Escaping mit htmlspecialchars hinzufügen.
|

27-10-2015, 13:14
|
sascha78
Registrierter Benutzer
|
|
Registriert seit: Oct 2015
Beiträge: 3
|
|
wollte nur noch mal danke sagen habe es jetzt geschafft.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|