| 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! |
 |
|

01-02-2010, 01:04
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
Zwei 'select-option tag', der 2te soll die Options in Abhängigkeit der 1sten zeigen?
Hallo,
ich habe zwei 'select-option tag' und möchte so programmieren, dass der zweite 'select' die Optionen in der Abhängigkeit der ausgewählten Option von der ersten 'select' zeigt. Noch ausführlicher: habe eine Tabelle in der Mysql-Datenbank mit den Spalten a1 a2 a3 a4. a4 soll ausgegeben werden, wenn a1 und a2 stimmt. es gibt jeweils ein scrolldown-menü für a1 und a2. Der Auswahlliste für a2 besteht aus über 50 Zeilen, deshalb möchte ich die Auswahlliste in Abhängigkeit des ausgewählten Elements von a1 zeigen.
Ist es möglich? Habe in Google nichts gefunden.
danke
|

01-02-2010, 01:18
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Fütter Google mal mit "dependant select" oder "dependant dropdown".
Geändert von onemorenerd (01-02-2010 um 01:21 Uhr)
|

01-02-2010, 01:23
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

01-02-2010, 01:27
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
es ist möglich und das auf zwei/drei verschiedenen Wegen:
a) Du lässt den Benutzer erstmal aus dem einen Auswählen, schickst das Formular ab (z. B. mit onchange) und lässt den Server die zweite Auswahlliste auf Basis der Vorauswahl ausliefern. Dieses Verfahren eignet sich auch für große Mengen an Auswahlmöglichkeiten und beliebig tiefe Entscheidungsbäume.
b) Du bietest alle Möglichkeiten auf einmal an und gruppierst die Auswahlliste mit optgroup. Das wäre dann das Fallback für Nicht- JS-Browser. Mit JS erfasst du die Auswahlliste dann in einer Datenstruktur, entfernst sie aus dem Dokument und fügst dynamisch gruppierte Listen ein, die aus dieser Datenstruktur in Abhängigkeit der jeweiligen Vorauswahl gefüttert werden. Dieses Verfahren eignet sich nur für eine bestimmte Anzahl an Auswahlmöglichkeiten und ist programmiertechnisch etwas aufwändiger.
c) Wie a) nur mit AJAX im Hintergrund
Edit: hab wohl zu viel geschrieben, jetzt waren die anderen schon schneller
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (01-02-2010 um 01:49 Uhr)
|

01-02-2010, 01:48
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
vielen dank für die Tipps,
wird gleich probieren
|

01-02-2010, 02:51
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
habe mich für onchange entschieden und gegoogelt. Trotz vielen individuellen Beispielen habe ich nicht ganz begriffen, wie onchange funktionert. Habe den onchange in den select eingebaut, wie es unten in meinem Programmteil aussieht. Hat die Variable $_POST[standort] den ausgewählten Wert, während man als nächstes beim select parameter einen Wert auswählen will?
Mit der Annahme: " $_POST[standort] den ausgewählten Wert, während man als nächstes beim select parameter einen Wert auswählt" habe ich in der select Anfrage für mysql-datenbank die Variable $_POST[standort] eingebaut und meinen Skript neu aufgerufen. Habe total weiße Seite bekommen.
Code:
.
.
<form action="datenabfrage_ergebnis_2.php" method="POST">
<input type=hidden name=select value="*">
<input type=hidden name=from value="messung">
<input type=hidden name=where value="db">
<table border=0 cellspacing=0 width=500>
<tr><td colspan=2><p class="feed">Standort und Parameter auswählen!</p></td></tr>
<tr>
<td>
<select name=standort onChange="document.forms['db_2.php'].submit();">
<option value=0 selected=selected>Standort wählen!</option>
ENDE;
for($i=1;$i<=$anzahls;$i++)
{
print "<option value=\"" . $standorte[$i] . "\">" . $standorte[$i] . "</option>";
}
print <<<ENDE
</select>
</td>
<td>
<select name=parameter>
<option value=0 selected=selected>Parameter wählen!</option>
ENDE;
for($i=1;$i<=$anzahl;$i++)
{
print "<option value=\"" . $parameter[$i] . "\">" . $parameter[$i] . "</option>";
}
Geändert von sharmuur (01-02-2010 um 03:31 Uhr)
|

01-02-2010, 03:03
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Bitte benutze die PHP- bzw. Code-Tags dieses Forums, so wie es in unseren Regeln steht!
Geändert von onemorenerd (01-02-2010 um 03:05 Uhr)
|

01-02-2010, 03:17
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
danke für die Info. Habe geändert. Richtig?
|

01-02-2010, 09:28
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Guten Morgen,
nein, du hast [code] bzw.  benutzt, sollst aber für PHP [php] bzw.  benutzen.
Dein onchange-Attribut kann irgendwie nicht hinhauen. Du willst das Formular über "db_2.php" ansprechen, dabei hat es weder id-, noch name-Attribut. Da du von einem Formularelement ausgehst, kannst du doch gleich über this.form navigieren.
Diese Hidden-Felder oben sehen mir sehr nach Sicherheitsrisiko aus. Wofür brauchst du die überhaupt?
Übrigens: ich mag deinen Code-Style nicht. Warum verwendest du
PHP-Code:
print <<<ENDE
...
ENDE;
statt
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

03-02-2010, 01:13
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
danke Amica für die Tipps und für die Zeit. Bin gar nicht dazu gekommen mein Skript zu bearbeiten. Gebe zunächst ausführliche Antwort.
Grüße
shar muur
|

06-02-2010, 16:14
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
Select-Option: nach dem Aktualisieren des Skripts
Hallo,
ich habe 2 Select-Option, wobei der 2te Select eine Liste abhängig von der ersten Select anzeigt. Praktisch wird nach dem ersten Select das Skript noch aktualisiert und das funktioniert. Aber es entsteht ein kleines Problem, da der ausgäwählte Text in dem 1ten Select verschwindet. Gibt es Möglichkeiten, dass der ausgewählte Text nach dem Aktualisieren stehen bleibt?
voraus Danke
|

06-02-2010, 17:01
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
PHP-Code:
<select name="bla">
<option value="blubb" <?php if ($_POST['bla'] == 'blubb') echo 'selected'?>>
</select>
So vom Prinzip her.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

06-02-2010, 17:19
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Immer noch gleiches Thema -> *zusammenführ*
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

06-02-2010, 18:56
|
|
sharmuur
Registrierter Benutzer
|
|
Registriert seit: Jan 2010
Beiträge: 11
|
|
Zitat:
Zitat von Kropff
PHP-Code:
<select name="bla"> <option value="blubb" <?php if ($_POST['bla'] == 'blubb') echo 'selected'?>> </select>
|
danke für den Tipp,
habe gerade probiert, aber es hat nicht funktioniert. Habe die Code unten eingefügt, könntest du vielleicht mir sagen, was hier falsch sein könnte
PHP-Code:
. . <select name=standort_messwert onChange="this.form.submit()"> <option value="$standorte_messwert[$i]" <?php if ($_POST['standort_messwert'] == '$standorte_messwert[$i]') echo 'selected'?>> ENDE; for($i=1;$i<=$anzahl_standort_messwert;$i++) { print "<option value=\"" . $standorte_messwert[$i] . "\">" . $standorte_messwert[$i] . "</option>"; }
|

06-02-2010, 19:26
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Du musst die if-Bedingung in die Schleife(!) einbauen. Und auch ein klein wenig mitdenken.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|
|
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
|