Wert aus Liste an PHP Variable übergeben
Peter
- html
Hallo,
ich möchte gerne eine 3 Auswahllisten erzeugen, in der 1. steht das Jahr, in der Zweiten der Monat und in der 3. soll der Tag stehen.
Wichtig ist hierbei, ich möchte das Jahr auswählen und dann in der Datenbank, wo mein Hauptbezug das Datum ist, schauen ob das Jahr vorhanden ist. Wenn Ja dann möchte ich die verfügbaren Monate anzeigen, die man jetzt erst in der 2. Liste auswählen kann. Die Auswal wird dann wieder überprüft und nur die Vorhanden Tage angezeigt.
Nun zum Problem. Ich habe nun eine Auswahlliste Jahr mit der ich das ausgwählte Jahr (welches in der Variable "$wert" steht) auswählen kann.
<select name='Jahr' tabindex='1'>
<option value=$wert>$wert</option>
</select>
das würde drin stehe :
<option value="2006">2006</option>
<option value="2007">2007</option>
Aber wie kann ich die Auswahl bestätigen? Wie kann ich den ausgewählten Wert in eine Variable speichern? Ich habe gelesen das es bei PHP5 Probleme gibt.
Wer kennt ein gutes Beispiel?
Hi,
ich möchte gerne eine 3 Auswahllisten erzeugen, in der 1. steht das Jahr, in der Zweiten der Monat und in der 3. soll der Tag stehen.
das heißt, dass der Client über all diese Informationen verfügen muss.
Wichtig ist hierbei, ich möchte das Jahr auswählen und dann in der Datenbank, wo mein Hauptbezug das Datum ist, schauen ob das Jahr vorhanden ist.
Das heißt, dass der Client nicht über alle Informationen verfügen _kann_. Er darf zunächst nur die Jahresauswahl erhalten, danach muss ein neuer Request zum Server geschehen, der die nächste Wahlmöglichkeit anbietet.
Die Auswal wird dann wieder überprüft und nur die Vorhanden Tage angezeigt.
Es heißt der Auswal.
Aber wie kann ich die Auswahl bestätigen?
Mit einem Submit-Button.
Wie kann ich den ausgewählten Wert in eine Variable speichern? Ich habe gelesen das es bei PHP5 Probleme gibt.
Welcher Art sollen diese Probleme sein?
Cheatah
Also mein größtes Verständnisproblem ist die Auswahlliste an sich.
Ich weiß wie ich eine Liste erstelle und wie ich die Variable mit Post an eine PHP Datei schicke. Dies habe ich jetzt so realisiert:
echo ('<form action="anfrage.php" method="POST">');
echo ("<select name='Jahr' size='1' tabindex='1'>");
while($Datum = mysql_fetch_array($Wetterdaten))
{
$Jahr[] = date("Y",strtotime($Datum['Datum']));
}
$arr = array_count_values($Jahr); // zählt alle
verschiedenen Werte, in der Form [2007]=>200; [2005]=>1 usw.
$ar = array_keys($arr); // erzeugen
eines neue Arrays in der Form [0]=>2007; [1]=>2005 usw.
foreach($ar as $wert)
echo ("<option value=$wert>$wert</option>");
echo ("</select>");
echo('<input type="submit" value="Abschicken!" />');
echo('</form>');
In dem Fall sende ich es aber an ein neues Script. Ich würde aber gerne alles in einem realisieren. So daß ich das Jahr auswähle und ohne eine Bestätigung werden die Monate aus der Datenbank angezeigt. Dann kommen die Tage und wenn ich den Tag ausgewählt habe drücke ich auf auswählen und die Daten werden dann an den Server geschickt.
Wie werden sonst solche Listen realisiert? Hilfe...
Wie werden sonst solche Listen realisiert? Hilfe...
Hallo Peter,
google mal unter dem Stichwort AJAX. Viel Erfolg.
Also Ajax hört sich recht schwer an :-( ich hab mich gerad ein wenig belesen.
Gib es nur die Möglichkeit das mit Ajax zu realisieren?
Hi,
Gib es nur die Möglichkeit das mit Ajax zu realisieren?
nein, AJAX stellt diesbezüglich lediglich eine Optimierung im Hinblick auf gewisse Faktoren dar. Die grundsätzliche Problematik ist davon weitgehend unberührt; vor allem war sie bereits zu einem Zeitpunkt gelöst, als "AJAX" nicht mehr als ein Putzmittel war, das man nach versteinerten Griechen benannt hatte.
Cheatah
Hi,
Ich weiß wie ich eine Liste erstelle und wie ich die Variable mit Post an eine PHP Datei schicke.
das "an eine Datei schicken" lasse ich mal so stehen. Aber es handelt sich
*** NICHT ***
um eine Variable. Es ist absolut unmöglich, über HTTP Variablen zu verschicken. Es handelt sich um einen Parameter.
In dem Fall sende ich es aber an ein neues Script. Ich würde aber gerne alles in einem realisieren. So daß ich das Jahr auswähle und ohne eine Bestätigung werden die Monate aus der Datenbank angezeigt.
Nachdem der Server seine Antwort an den Client geschickt hat (lies: wenn der Client eine Seite anzeigt), ist der Server tot. Er spielt keine Rolle mehr, solange bis er erneut aufgerufen wird. Der Aufruf ist eine clientseitige Aktion, mit der PHP nichts zu tun hat.
Wie werden sonst solche Listen realisiert?
Genauso wie z.B. solche Texte oder solche Bilder oder solche Tabellen oder solche Gänseblümchen. Dein Problem hat nichts mit Listen zu tun, sondern mit HTTP und den beiden Welten Client und Server.
Der von Patrick genannte Ansatz verhindert übrigens nicht, dass Dein PHP-Script(-Konglomerat) auf verschiedene Konstellationen reagieren muss; und es erzeugt eine Abhängigkeit zu einer deaktivierbaren Technik. Sprich: Löse Dein Problem zunächst mit einzelnen Submit-Buttons.
Cheatah
Hallo Leute,
ich habe jetz eine Teillösung meines Problems.
Ich kann die DB nach den Jahren abfragen und in einer Auswahlliste anzeigen lassen und diesen Parameter kann ich dann nach der Auswahl aus der Liste übergeben.
Mein Problem ist, wie kann ich die Abfrage nach dem Monat jetzt realisieren ohne das die Seite neu läd?
Mir ist wichtig, das in der Liste nur Werte auftauchen die in der DB auch vorhanden sind.
Jahr -> Monat -> Tag so ähnlich wie wenn ich im Netz irgend ein Sop besuche und dort zB. Hardware -> Speicher - DDR2 -> usw. auswähle.
Wie realisiert man sowas? Ich finde keinen richtigen Ansatz oder ist die Sachlage doch Größer als ich denke?
hier noch mal der Testcode von auswahl.php:
//kann ich auch den Parameter der aktuellen PHP Datei auch übergeben? zb. zu auswahl.php?
echo ('<form action="anfrage.php" method="POST">');
echo ("<select name='Jahr' size='1' tabindex='1' onChange='this.form.submit()'>"); //mittels Java bei Auswahl senden
while($Datum = mysql_fetch_array($Wetterdaten))
{
$Jahr[] = date("Y",strtotime($Datum['Datum']));
#$Monat[] = date("m",strtotime($Datum['Datum']));
#$Tag[] = date("d",strtotime($Datum['Datum']));
}
$arr = array_count_values($Jahr); // zähler für alle Verschiedenen Werte, in der Form [2007]=>200; [2005]=>1 usw.
$ar = array_keys($arr); // erzeugen eines neue Arrays in der Form [0]=>2007; [1]=>2005 usw.
foreach($ar as $wert)
echo ("<option value=$wert>$wert</option>");
echo ("</select>");
echo('</form>');
Gruß