| 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! Post your PHP questions here! |
 |
|

04-07-2009, 17:22
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
form -> action="<?php echo $_SERVER['PHP_SELF']; ?>
WICHTIG:
Zitat:
Zitat von combie
PHP-Code:
<form name=select action="<?php echo $_SERVER['PHP_SELF']; ?>">
Jetzt lass das doch endlich mal weg!!
Jeder Anfänger, welcher diesen Thread sieht, wird verführt PHP_SELF einzusetzen.
Bitte lass das.....!
Machs doch so, das ist genauso gut:
HTML-Code:
<form name=select action="">
Einfach leer lassen. Sollte in deinem Fall dicke reichen.
|
--------------------------------------------------
Hoffe ich bin hier richtig
Habe ein "kleines" Problem...
habe einige Select-Felder welche mit DB Abfragen befüllt werden.
Wenn ich nun ein Feld verändere, und meine Ausgabe per Button veränderen will geht dies zwar, das Feld ändert seinen Anzeigewert jedoch wieder auf den Wert, welcher als erstes von der DB ausgegebenen wird. Eigentlich klar (reload Seite)
Wie bekomme ichs nun hin, dass, nachdem ich die Ausgabe aktualisiere, das Select Feld das Richtige anzeigt? Würde ja Value hernehmen, geht aber leider nicht, weil Value ja mit der DB Abfrage befüllt ist.
(Hoffe das war einigermaßen verständlich :P)
Würde mich über Hilfe freuen,
mfg
Geändert von moepmann123 (05-07-2009 um 22:08 Uhr)
|

04-07-2009, 18:13
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von moepmann123
(Hoffe das war einigermaßen verständlich :P)
|
Kaum.
Insb. was der Titel mit der eigentlichen Frage zu tun haben soll, kann ich nicht erkennen.
Zitat:
|
Wie bekomme ichs nun hin, dass, nachdem ich die Ausgabe aktualisiere, das Select Feld das Richtige anzeigt?
|
Ich kann nur raten, dass du das meinen könntest:
http://de.selfhtml.org/html/formular..._vorselektiert
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-07-2009, 19:09
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Ok, der Titel war vielleicht etwas schlecht gewählt :P
Ich versuchs nochmal verständlich zu erklären.
Ich habe ein Form in dem einige Select-Felder enthalten sind. Diese Felder werden durch Datenbankabfragen befüllt und sohin ist Value schon vorbelegt. Am Schluss dieses Forms habe ich einen Aktualisieren Button um die Ausgabe (hier werden die Daten der Select-Felder verwertet) neu auszugeben.
Als Action für das Form habe ich <?php echo $_SERVER['PHP_SELF']; ?> verwendet, um die Ausgabe auf der selben Seite neu zu laden.
Mein Problem ist nun, dass die Ausgabe perfekt funktioniert, ich will jedoch - nach dem die Seite neu geladen wurde - die Optionen die ich vorher gewählt habe, in den Select Feldern als "selected" haben.
Vorselektiert habe ich versucht, funktioniert jedoch nicht da er mir - sofern ich selected in meinen <option>-Tag packe - immer den letzten Datensatz auswählt.
Problem is ja iwi, dass er ja nachdem er die Seite neu ladet, auch die Select Felder neu mit den Datenbankabfragen befüllt.
Hoffe das war etwas verständlicher
Mfg
Geändert von moepmann123 (04-07-2009 um 19:13 Uhr)
|

04-07-2009, 19:24
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von moepmann123
Vorselektiert habe ich versucht, funktioniert jedoch nicht da er mir - sofern ich selected in meinen <option>-Tag packe - immer den letzten Datensatz auswählt.
|
Tja, dann machst du's wohl falsch, denn genau so geht's.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-07-2009, 19:40
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Code:
echo "<option value= ".$klasse2['id_klasse']." selected >".$klasse2['klasse']."</option>";
so sieht der Code für das Select-Feld aus...Wenn ich jetzt eine Option auswähle, die Seite per Button neu lade und die ausgewählten Optionen übergebe, bringt mir das Select sehr wenig (falls es so hingehört) da er ja wieder einfach neu aus der DB ausliest.
Würde mich freuen wenn du mir sagen würdest wie ichs machen könnte
Mfg
|

04-07-2009, 19:46
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von moepmann123
so sieht der Code für das Select-Feld aus...
|
Also selected in jeder Option. Na das ist doch wohl mal blödsinnig - merkst du doch hoffentlich selber ...?
Zitat:
|
Wenn ich jetzt eine Option auswähle, die Seite per Button neu lade und die ausgewählten Optionen übergebe, bringt mir das Select sehr wenig (falls es so hingehört) da er ja wieder einfach neu aus der DB ausliest.
|
Und dabei vergleichst du den übergebenen Wert mit den Werten die du ausgibst - und nur bei Gleichheit schreibst du dann das selected-Attribut mit rein.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

04-07-2009, 20:01
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Zitat:
Zitat von wahsaga
Also selected in jeder Option. Na das ist doch wohl mal blödsinnig - merkst du doch hoffentlich selber ...?
Und dabei vergleichst du den übergebenen Wert mit den Werten die du ausgibst - und nur bei Gleichheit schreibst du dann das selected-Attribut mit rein.
|
das selected ist normal auch ned drin :P war nur zum testen.
Werd das mal so probieren, mal schaun ob ichs hinbekomm :P
mfg u danke
|

04-07-2009, 20:14
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Ich stehe etwas auf der Leitung
Das ist mal generel mein Code um das Selectfeld zu befüllen:
Code:
$klasse_norm ="SELECT * FROM t_klassen t;";
$klasse = "SELECT * FROM t_stundenplan s INNER JOIN t_stundenzeiten st INNER JOIN t_klassen t
ON s.stunde = st.stunde AND s.klasse = t.klasse
WHERE s.lehrercode like '$lehrercode' AND '$uhrzeit' between st.von and st.bis AND s.tag like '$tag';";
$ergebnis_klasse = mysql_query($klasse);
$ergebnis_klasse_norm = mysql_query($klasse_norm);
$num_rows = mysql_num_rows($ergebnis_klasse);
if ($num_rows > 0) {
while($klasse2 = mysql_fetch_assoc($ergebnis_klasse)) {
echo "<option value= ".$klasse2['klasse']." >".$klasse2['klasse']."</option>";
$schueler_kl = "".$klasse2['klasse']."";
$f_kl = $_GET["sel_klasse"];
}
}
else {
while($klasse3 = mysql_fetch_assoc($ergebnis_klasse_norm)) {
echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>";
$schueler_kl = "".$klasse3['klasse']."";
$f_kl = $_GET["sel_klasse"];
}
}
ZZ überprüfe ich, ob ich Datensätze geliefert bekomme, wenn ja soll er den einen (kann in dem Fall nur einer sein) ausgeben. Wenn keine Datensätze gefunden werden, soll er alle Klassen ausgeben.
Wie kann ich das so löse, dass wenn ein Datensatz gefunden wird, dieser selected ist, wenn keiner gefunden wird, die Liste ganz normal ausgegeben wird?
Mfg
|

04-07-2009, 20:59
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Benutz doch bitte die [PHP]-Tags, dann wird der Code für uns lesbarer.
|

04-07-2009, 21:02
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Wie kann ich das so löse, dass wenn ein Datensatz gefunden wird, dieser selected ist, wenn keiner gefunden wird, die Liste ganz normal ausgegeben wird?
|
Na, die betreffende Zeile dürfte diese sein:
PHP-Code:
echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>";
Und dann ganz einfach:
PHP-Code:
echo "<option value= ".$klasse3['klasse']. (aktueller_datensatz == gefundener datensatz ? " selected=selected" : "") . ">".$klasse3['klasse']."</option>";
|

04-07-2009, 22:13
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Zitat:
Zitat von TobiaZ
Na, die betreffende Zeile dürfte diese sein:
PHP-Code:
echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>";
Und dann ganz einfach:
PHP-Code:
echo "<option value= ".$klasse3['klasse']. (aktueller_datensatz == gefundener datensatz ? " selected=selected" : "") . ">".$klasse3['klasse']."</option>";
|
nette sache  funktioniert super...jetzt besteht nur noch das Problem, dass die ausgewählte Option nach dem Action von dem Form nicht gleichbleibt, sondern wieder auf den Ursprung wechselt.
Soll heißen:
Ich habe 2 Auswahlmöglichkeiten -> Möglichkeit 1 wird beim Aufrufen der Seite automatisch gewählt. Ich wechsle auf Option 2, lade die Seite mit <?php echo $_SERVER['PHP_SELF']; ?> neu -> die Option ist wieder auf 1, sollte aber - wenns nach mir ginge :P - auf 2 sein
Mfg und VIELEN Dank!
|

04-07-2009, 22:15
|
|
Koala
PHP Junior
|
|
Registriert seit: Jan 2006
Beiträge: 887
|
|
action="<?php echo $_SERVER['PHP_SELF']; ?> ist nicht gut wegen XSS
|

04-07-2009, 22:16
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
Zitat:
Zitat von Koala
action="<?php echo $_SERVER['PHP_SELF']; ?> ist nicht gut wegen XSS
|
dh ich werde es mit java oder dergleichen lösen müssen?
|

04-07-2009, 22:25
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Warum sollte man Java in einem PHP Programm verwenden? Verwende lieber sichere Variablen, oder verzichte gleich darauf.
Dein Problem habe ich nicht verstanden, vielleicht erklärst du es nochmal?
Und lass uns dir nicht alles aus der Nase ziehen.
|

04-07-2009, 22:33
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
nochn versuch :P
Ich habe ein Form das so aussieht: (hier nur ein Select-Feld)
PHP-Code:
<form name=select action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select style='width:50px;' class='box' name='lehrer'>
<!-- Angemeldten Lehrer waehlen //--> <?
$lehrer = "SELECT * FROM t_lehrer t;"; $ergebnis_lehrer = mysql_query($lehrer); while($lehrer2 = mysql_fetch_assoc($ergebnis_lehrer)) { echo "<option value= ".$lehrer2['lehrercode']. ($id_lehrer == $lehrer2['id_lehrer'] ? " selected=selected" : "") . ">".$lehrer2['lehrercode']."</option>"; }
?> </select>
<input class='button' type='submit' value='Abrufen' /> </form>
$id_lehrer bekomme ich in diesem Fall aus der Seassion-Variable vom Login.
So, jetzt will ich im Select-Feld einen anderen Eintrag auswählen, dann auf Submit klicken und es so haben, dass nachdem die Seite durch das php_self neu aufgerufen wurde, im Select-Feld der vorher ausgewählte Wert selected ist. Zur Zeit wird ja einfach die DB Abfrage nochmal ausgeführt.
Mfg
|
|
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
|