Wert aus Combobox in File speichern
Hallo!
Bin relativer Noob was php angeht, ich brauche aber gerade dringend ein script...
ich habe eine html mit dem inhalt:
<select name="testmodul" Size="1">
<Option style="background-color:#d6d6d6;" Value="wort1">wort1</option>
<Option style="background-color:#d6d6d6;" Value="wort2">wort2</option>
<Option style="background-color:#d6d6d6;" Value="wort3">wort3</option>
</select>
mein ziel ist es dass wenn man zB "wort3" aus der Liste auswählt, er automatisch eine file speichert die nur den inhalt
testmodul:wort3
hat. also der name der combobox und der ausgewählte wert mit doppelpunkt getrennt. habe schon einiges versucht aber es ist einfach frustrierend wenn einem die basics fehlen, für einen php experten müsste das ne sache von 2 minuten sein.
wenn mir jemand das script erstellen könnte wär ich echt froh!
Gruß!
Martin W.
Antwort schreiben
Antwort 1 von katy vom 10.01.2020, 13:24 Options
Hallo Martin,
ich erarbeite mir selbst auch erst gerade die PHP-Grundlagen, daher interessiert mich das Problem. Schreib doch mal deine bisherigen Lösungsversuche und vielleicht können wir davon ausgehend gemeinsam eine Lösung finden - gerne unter Zuhilfenahme von weiterer Hilfe hier im Forum.
katy
Antwort 2 von Mister.Pink vom 10.01.2020, 18:07 Options
<?php
//Gewaehltes Feld Auslesen(method = get) und Text erzeugen(modul:wert)
$_COMBOBOX_NAME = "testmodul";
$_SELECTED_FIELD = $HTTP_GET_VARS[$_COMBOBOX_NAME];
$_TEXT = $_COMBOBOX_NAME;
$_TEXT .= ":";
$_TEXT .= $_SELECTED_FIELD;
$_TEXT .= "\n";
//Datei öffnen(append) und Zeile schreiben
$_FILENAME = "test.csv";
$_FILE = fopen($_FILENAME, "a"); // a -> append
fwrite($_FILE, $_TEXT);
?>
Dieses setzt jedoch vorraus, dass es nur ein Modul gibt.
Antwort 3 von katy vom 12.01.2020, 13:21 Options
Hallo Martin,
ich habe mal versucht aus Mister.Pinks Code und dem PHP-Formmailer aus SelfHTML etwas zusammenzuschreiben.
<?php
if($_GET)
{
$i=0;
while(list($strName,$value) = each($_GET))
{
$i++;
$_TEXT= $strName.":".$value;
$_FILENAME = "test".$i.".csv";
$_FILE = fopen($_FILENAME, "a");
fwrite($_FILE, $_TEXT);
}
}
?>
Ist das der richtige Weg (ich weiß, dass hier jetzt noch alle möglichen Fehlerabfragen fehlen)?
katy
Antwort 4 von Fassy91 vom 12.01.2020, 19:14 Options
warum willst du eine schleife nehmen ?
Mach es einfach so :
<?php
if (isset($_GET['testmodul')) //Ist $_GET['testmodul'] leer ?
{
$_TEXT= "testmodul":".$_GET['testmodul'];
$_FILENAME = "filetosavein.txt";
$_FILE = fopen($_FILENAME, "a");
fwrite($_FILE, $_TEXT);
fclose($_FILE);
}
?>
Fertig wenn du PHP lernen willst oder wenn du Probleme hast melde dich bei mir ich mach PHP schon was länger.
ICQ : 489471070
mfg
Fabian
Antwort 5 von katy vom 13.01.2020, 08:29 Options
Hallo Fabian,
ich hatte die Frage so verstanden, dass mehrere select-Felder mit verschiedenen Namen auftreten können. Daher die Schleife.
Ansonsten hast du natürlich recht. Da der Threaderöffner sich aber sowieso nicht mehr gemeldet hat ist es wohl auch egal.
katy
Antwort 6 von Fassy91 vom 13.01.2020, 10:26 Options
stimmt deine version wäre für mehrere selects und meine für das eine von oben
naja schade das man eine frage stellt und net sagt wann sie beantwortet ist
mfg
Fabian