| 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, 22:40
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Grundlagen...
Du brauchst doch nur, dass was du on deinem vorletzten Satz geschrieben hast, in eine If()-Abfrage zu stecken.
Liefer mal eigene Ansätze, dann können wir immer noch verbessern. Aber deine Hausaufgaben machen wir nicht.
|

04-07-2009, 23:09
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
dh ich soll mit ner if-Abfrage überprüfen ob ich an dem Select was geändert hab und dann dies und jenes ausführen?
|

05-07-2009, 02:00
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von moepmann123
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.
|
Na dann nutze diesen für den Vergleich.
Zitat:
|
Zur Zeit wird ja einfach die DB Abfrage nochmal ausgeführt.
|
Na das wird sie doch sowieso, um das komplette Select-Feld wieder aufbauen zu können ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

05-07-2009, 08:47
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
naja, aber im Vergleich (hoffe wir meinen das gleiche :P) habe ich zz ja schon den angemeldeten Lehrer vorselektiert. Ich stehe etwas an
Mfg
|

05-07-2009, 09:31
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
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.
|

05-07-2009, 22:07
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
so, das php_self habe ich jetzt weg, werde mich morgen mal informieren wann ich das verwende  danke dafür. (hab deinen post mal in meinem ersten gequoted  )
Hängen tu ich immer noch an der if-Abfrage, kriegs nicht so recht hin :/
Mfg
|

05-07-2009, 22:19
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
werde mich morgen mal informieren wann ich das verwende
|
Die richtige Antwort ist: Nie!
Ausnahme:
Du möchtest XSS Attacken Serverseitig erkennen.
Geändert von combie (05-07-2009 um 22:23 Uhr)
|

06-07-2009, 11:25
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
"Ich kriegs nicht hin" ist noch schlechter als "funktioniert nicht".
Ohne Problem(beschreibung) können wir dir nicht helfen. Und nochmal, wir machen nicht deine Hausaufgaben, das musst du schon selber machen.
|

06-07-2009, 20:59
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
so
so siehts zz aus. Wenn der erste Query n Ergebnis liefert, wird dieser selected. Wenn nun etwas im Select verändert wird und die Seite neu ladet, kann ich zwar per echo die ID ausgeben (es ist auch die richtige - die ausgewählte), jedoch, sobald die Seite neu ladet, was ja sofort geschieht wenn etwas verändert wird, springt das selected wieder zurück auf den Vergleich mit der DB Ausgabe.
Wenn der erste Query nichts liefert, kann ich perfekt alles auswählen, es bleibt auch nach dem Reload der Seite der richtige ausgewählte Wert erhalten.
PHP-Code:
<table> <tr> <td id='logtext'>Klasse:</td> <td> <select style='width:50px;' onChange='this.form.submit()' class='box' name='sel_klasse'> <!-- Klasse waehlen //--> <?
$datum = date("d.m.Y"); $uhrzeit = date("H:i"); $tag = date("w"); $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); while($klasse2 = mysql_fetch_assoc($ergebnis_klasse)) { $id_kl = "" . $klasse2['id_klasse'] . ""; }
while($klasse3 = mysql_fetch_assoc($ergebnis_klasse_norm)) { if (isset($_GET['sel_klasse']) && $_GET['sel_klasse'] == "".$klasse3['id_klasse'].""){ $sel = " selected='selected'"; } elseif($id_kl == $klasse3['id_klasse']){ $sel = " selected='selected'"; } else { $sel = ''; } echo "<option value= '" . $klasse3['id_klasse'] . "'$sel>" . $klasse3['klasse'] . "</option>"; $f_kl = $_GET['sel_klasse']; }
?> </select></td> </tr>
Wäre super wenn sich das mal schnell wer durchsehen könnte!
mfg
|

06-07-2009, 22:44
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
kleine Neuerung:
Ich bin draufgekommen, dass nur Optionen welche in der Liste VOR dem schon nach dem Login ausgewählten Datensatz stehen, zwar angewählt werden und auch den wert von dem Select Feld ändern, sie jedoch nicht als selected markiert werden. Alle Felder die nach dem schon vorher automatisch selektierten in der Liste stehen können problemlos angewählt werden und werden auch als neues selected verwendet!
Mfg
|

07-07-2009, 00:18
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von moepmann123
Ich bin draufgekommen, dass nur Optionen welche in der Liste VOR dem schon nach dem Login ausgewählten Datensatz stehen, zwar angewählt werden und auch den wert von dem Select Feld ändern, sie jedoch nicht als selected markiert werden. Alle Felder die nach dem schon vorher automatisch selektierten in der Liste stehen können problemlos angewählt werden und werden auch als neues selected verwendet!
|
Das ist mir immer noch zu konfus ...
Beschreibe doch bitte erst mal, was du eigentlich erreichen willst.
Wann sollen wo welche Optionen angezeigt werden?
Im Normalfall würde ich davon ausgehen, dass immer alle Datensätze selektiert und als Optionen angeboten werden.
Wenn beim ersten Scriptaufruf eine Auswahl stattfindet, dann werden auf der Folgeseite wieder alle Datensätze ausgelesen und Options erzeugt, lediglich mit dem Zusatz, dass die zuvor gewählte mit selected vorausgewählt wird.
Das wäre zumindest das gängige Muster, wie es der Nutzer von zahlreichen Formularen gewohnt ist.
Irgendwie habe ich aber den Verdacht, dass es bei dir anders ablaufen soll - aber wie, das ist mir bisher noch nicht klar geworden. (Ich hoffe wenigstens, dass du es selber schon weisst.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

07-07-2009, 07:58
|
|
moepmann123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 30
|
|
wir meinen das Gleiche
angenommen ichhabe ein form mit nur einem select-feld.die optionen dieses select-felds werden immer durch eine db abfrage befuellt.
fuer dieses select feld habe ich 2 db querys. das erste sucht nach einem gezielten datensatz (es gibt nur ein ergebnis),der andere query liefert eine liste mit allen klassen mit welchen die optionen des select-feldes befuellt werden sollen.
beim erstmaligen laden der seite wird geschaut ob aus dem ersten query ein ergebnis kommt,dieses als variable gespeichert und diese wird dann fuer den elseif vergleich verwendet,um direkt die richtige klasse zu waehlen.
durch veraendern einer option wird die ausgewaelte option als &sel_klasse=option an den link der aktuellen seite angehaengt.
mit der if abfrage wird ueberprueft ob es diese adresserweiterung fuer dieses feld vorhanden ist,wenn ja wird der,in der adresserweiterung stehende wert vorselektiert.
das funktioniert mit meinem oben gepostetem script soweit auch schon ganz gut,lediglich wenn durch die variable vom ersten query eine andere option als die erste im zweiten query vorselektiert wird,kann ich nurnoch optionen welche sich in der select liste unter diesem datensatz befinden,erfolgreich anwaehlen,die vorselektierung geschieht hierbei jedoch super.
waehle ich jedoch eine option ueber der durch den db query vorselektierten option,geschieht die adresserweiterung zwar richtig,es wird jedoch trotzdem das ergebnis vom ersten db query,welches wie gesagt in einer variable gespeichert wird, vorselektiert.
hoffe das war einigermaßen verstaendlich,sorry fuers kleinschreiben,bin am handy
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
|