PHP variable dauerhaft speichern!!!
Anna
- php
Hallo Selfmania :D,
Problembeschreibung:
Ich versuche momentan ein Script zu schreiben mit dem ich durch ein Listenfeld Zahlen in eine Variable speicher und sie einer if Funktion zuweist.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" name="abschicken>"
<select name="zahlen" onchange="abschicken.submit()">
<option>1</option>
...
<option>10</option>
</select>
Nun kommt jetzt eine Variable in der ich den Wert gerne so lange speichern will bis ich ein neuen Wert aus der Liste auswähle.
<?php
$variable=$_POST['zahlen'];
Was muss ich jetzt genau machen das diese Variable den Wert konstant behält bis ich einen neuen Wert auswähle. Ich hoffe mir kann jemand helfen.
Gruß
Anna
<select name="zahlen" onchange="abschicken.submit()">
<option>1</option>
...
<option>10</option>
</select>
Und welche Option hat das selected Attribut?
das sollte deine ganze Problemlage beantworten.
PS.
Prüfe, ob $_POST Variablen überhaupt existieren, bevor du sie verwendest.
mfg Beat
Hallo,
Und welche Option hat das selected Attribut?
das sollte deine ganze Problemlage beantworten.
Kannst du das mal bitte näher erleutern mit dieser Option!?
Prüfe, ob $_POST Variablen überhaupt existieren, bevor du sie verwendest.
Ja ein Wert bekomm ich ja,
ich will es ja so programmieren
IF(!isset($_POST['zahlen']))
{
$variable=1;
}
Das aus dem Grund, weil man ja erst was auswählen muss damit die Variable einen Wert hat.
else
{
$variable=$_POST['zahlen'];
}
Das funktioniert so weit, aber wenn ich das Script neu lade ist in der Variablen ja nicht mehr die Zahl drin die man gewählt hat.
Ich habe nämlich eine Blättern-Funktion indem die Zahl beim nächsten Scriptladen die Anzahl der gezeigten Zeilen angeben soll, z.B.
Ich wähle 5 aus
dann kommen 5 Zeilen pro Seite, wenn ich aber jetzt insgesamt 10 Zeilen habe kann ich die nächsten Datensätze aufrufen, deshalb ist es wichtig das die Variable den Wert behält.
Gruß
Anna aus Würzbug :D
Und welche Option hat das selected Attribut?
das sollte deine ganze Problemlage beantworten.Kannst du das mal bitte näher erleutern mit dieser Option!?
In einem Selectfeld sollte es immer einen Defaultwert geben.
Das hat streng genommen damit zu tun, dass ein User nicht unterscheiden kann, ob der angezeigte Wert auch von ihm aktiv selektiert wurde, oder nur zufällig der erste Eintrag von unselektierten Optionen ist.
HTML
<option value="someval" selected>Some Label</option>
XHTML
<option value="someval" selected="selected">Some Label</option>
In deiner Logik
schreibe die Optionen in einer Schleife.
prüfe jeweils ob value == $_POST['feldname']
Schreibe das selected, wenn wahr
mfg Beat
Hallöchen,
In einem Selectfeld sollte es immer einen Defaultwert geben.
Das hat streng genommen damit zu tun, dass ein User nicht unterscheiden kann, ob der angezeigte Wert auch von ihm aktiv selektiert wurde, oder nur zufällig der erste Eintrag von unselektierten Optionen ist.HTML
<option value="someval" selected>Some Label</option>
XHTML
<option value="someval" selected="selected">Some Label</option>In deiner Logik
schreibe die Optionen in einer Schleife.
prüfe jeweils ob value == $_POST['feldname']
Schreibe das selected, wenn wahr
Des Hilft mir doch schon mal um einiges weiter, vielen Dank :)
werds gleich mal ausprobieren.
Gruß Anna
Mahlzeit Anna,
Nun kommt jetzt eine Variable in der ich den Wert gerne so lange speichern will bis ich ein neuen Wert aus der Liste auswähle.
<?php
$variable=$_POST['zahlen'];
Was muss ich jetzt genau machen das diese Variable den Wert konstant behält bis ich einen neuen Wert auswähle.
Das passiert ganz von alleine - die Variable behält solange ihren Wert, bis Du ihr einen neuen zuweist oder sie entfernst ... längstens natürlich bis zum Ende der Laufzeit des PHP-Skripts.
Wenn es Dir um eine Speicherung darüber hinaus geht, solltest Du Dich über die verschiedenen Speicherorte bzw. -methoden informieren:
Speicherung in einer Datei auf dem Server (darunter den Spezialfall XML-Format)
MfG,
EKKi
Hi,
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" name="abschicken>"
<select name="zahlen" onchange="abschicken.submit()">
was für ein Objekt ist "abschicken", und was macht dessen submit()-Methode?
Cheatah
Hallo Cheatah,
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" name="abschicken>"
<select name="zahlen" onchange="abschicken.submit()">was für ein Objekt ist "abschicken", und was macht dessen submit()-Methode?
Abschicken ist name Name beim form-Tag und abschicken.submit() aktiviert ein virtuellen Submitbutton ohne ihn zu drücken, sprich automatisch.
Also ist jetzt vielleicht en bisl komisch ausgedrückt aber im Prinzip hab ich des so verstanden.
Gruß Anna
Abschicken ist name Name beim form-Tag und abschicken.submit() aktiviert ein virtuellen Submitbutton ohne ihn zu drücken, sprich automatisch.
Dann wärs aber sinnvollerweise window.abschicken bzw. document.abschicken - oder aber document.getElementsByName('abschicken')[0]
In jedem Fall hast du aber das Problem, dass eine name-Wert nicht dokumentweit eindeutig sein muss.
Hallo,
Ja mhh, dass Problem ist ja ich bin Anfängerin in Java, hat jemand ne idee wie ich dass auch ohne session machen kann oder sollte ich dafür session verwenden. Bei Sessions ist halt das Problem, dass ich ja nur einen Wert dauerhaft haben will und es ist halt auch en großer aufwand (finde ich) weil ich es halt net so gut kann :(
Kann mir jemand einen Tipp geben wie ich meine Problemstellung lösen kann, auch wenns nur ein Tutorial ist das auf meinen Fall bezogen ist.
Im Internet habe ich auch net wirklich was gefundne, ich bin zufällig auf dieses Forum gestoßen also wäre wirklich sehr nett :)
Ach sorry fürs TUFU, ja ich habe die Regeln gelsesen :P
Gruß Anna
Mahlzeit Anna,
Ja mhh, dass Problem ist ja ich bin Anfängerin in Java,
Das macht nichts - schließlich handelt es sich ja um ein Javascript-Problem.
MfG,
EKKi
Mahlzeit suit,
Abschicken ist name Name beim form-Tag und abschicken.submit() aktiviert ein virtuellen Submitbutton ohne ihn zu drücken, sprich automatisch.
Dann wärs aber sinnvollerweise window.abschicken bzw. document.abschicken - oder aber document.getElementsByName('abschicken')[0]
Mitneffen - deutlicher sinnvoller wäre "http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=this.http://de.selfhtml.org/javascript/objekte/elements.htm#form@title=form.http://de.selfhtml.org/javascript/objekte/forms.htm#submit@title=submit();" ...
MfG,
EKKi
Mitneffen - deutlicher sinnvoller wäre "http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=this.http://de.selfhtml.org/javascript/objekte/elements.htm#form@title=form.http://de.selfhtml.org/javascript/objekte/forms.htm#submit@title=submit();" ...
Das ist die Deluxe-Variante :p - meinen zusätzlichen Hinweis mit dem nicht dokumentweit eindeutigen Name-Attribut hast du ja hoffentlich gelesen :)
Hi,
Abschicken ist name Name beim form-Tag
nein, das ist "abschicken", nicht "Abschicken". Der Unterschied ist vergleichbar mit dem zwischen "abschicken" und "bbschicken".
und abschicken.submit() aktiviert ein virtuellen Submitbutton ohne ihn zu drücken, sprich automatisch.
Nein, dazu müsste zunächst einmal ein JavaScript-Objekt namens "abschicken" existieren, welches das Formular namens "abschicken" referenziert. Dies ist per se nicht gegeben - das wäre auch fatal. Und ja, im IE *ist* es fatal.
Also ist jetzt vielleicht en bisl komisch ausgedrückt aber im Prinzip hab ich des so verstanden.
Globale JavaScript-Objekte entstehen nicht magisch aus dem luftleeren Raum. Außer im IE und einigen Browsern, die dessen Fehler nachahmen.
Cheatah