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

29-07-2008, 18:14
|
|
erwin_lier
Newbie
|
|
Registriert seit: Jul 2008
Beiträge: 33
|
|
Form Action und Select-Box variabel füllen
Hallo Leute,
nachdem ich als Neuling heute so schnell und funktionierend Hilfe bekommen habe, kommt der php-Appetit und damit auch die Fragen.
Folgendes Problem:
echo '<form action="test.php" method="GET" name="Formular1" id="Formular1">
<select name="matname" id="matname" onchange="this.form.submit();">
<option value="1">'.$plnamewww[1].'</option>
<option value="2">'.$plnamewww[2].'</option>
<option value="3">'.$plnamewww[3].'</option>
<option value="4">'.$plnamewww[4].'</option>
<option value="5">'.$plnamewww[5].'</option>
usw.
Das funktioniert ja. Aber ich sollte die Anzahl der "<option"-Zeilen variabel haben. Also z.B wenn $plnamewww[5]=leer ist, sollte diese Zeile nicht geschrieben werden. Weil das schaut ja blöde aus, wenn die Box ewig hoch ist, und nichts drin steht. Ich habe immer so meine Probleme in Verbindung mit "echo '<form action".
Schon mal vielen Dank
Erwin
|

29-07-2008, 18:24
|
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
hi, also wenn du die options als array in $plnamewww vorliegen hast, dann musst du die html-option-tags deines formulares dynamisch generieren.
eine schleife ist dabei ganz hilfreich foreach
|

29-07-2008, 18:43
|
|
erwin_lier
Newbie
|
|
Registriert seit: Jul 2008
Beiträge: 33
|
|
Hi 3DMax,
mein Problem ist ja aber, dass ich das in Verbindung mit der FormAction
nicht hinkriege.
In dem erweiterten Beispiel unten klappt es nämlich nicht. Die Box wird immer auch mit diesem Wert gefüllt. Aber es sei mir verziehen, ich bin ja blutiger php-Anfänger.
Erwin
PHP-Code:
$plnamewww[4]="998";
echo '<form action="test.php" method="GET" name="Formular1" id="Formular1">
<select name="matname" id="matname" onchange="this.form.submit();">
<option ' .$matsel[1]. ' value="1">'.$plnamewww[1].'</option>
<option ' .$matsel[2]. ' value="2">'.$plnamewww[2].'</option>
<option ' .$matsel[3]. ' value="3">'.$plnamewww[3].'</option>
if ($plnamewww[4]=="999")
{
<option ' .$matsel[4]. ' value="3">'.$plnamewww[4].</option>
}
</select>
EDIT: php-tags sponsored by kropff
Geändert von Kropff (29-07-2008 um 19:16 Uhr)
|

29-07-2008, 19:17
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
und jtzt schau dir mal genau die farben an. dann siehst du, wo es hakt. außerdem solltest du dich zuerst mal mit einer vernünftigen fehlersuche beschäftigen.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

29-07-2008, 19:32
|
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Zitat:
Original geschrieben von erwin_lier
mein Problem ist ja aber, dass ich das in Verbindung mit der FormAction
nicht hinkriege.
|
und was ist genau das problem?
also erst formularanfang ausgeben, dann schleife, dann formularende.
dein beispiel kann ich irgendwie nicht nachvollziehen.
ich denke du sucht soetwas  :
PHP-Code:
// Optionen für Drop-Down-List
$options = array('huhu', 'hallo', 'blub');
// HTML-Teile - könnten aber auch direkt mit echo ausgegeben werden
$html = array();
// Formular beginnen, könnte auch im HTML-Teil stehen
$html[] = '<form action="test.php" method="GET" name="Formular1" id="Formular1">';
$html[] = '<select name="matname" id="matname" onchange="this.form.submit();">';
// Options dynamisch generieren
foreach($options as $option_value => $option_text)
{
$html[] = '<option value="'.$option_value.'">'.$option_text.'</option>';
}
// Formular beenden
$html[] = '</select>';
$html[] = '</form>';
// Formular ausgeben
echo implode("\n", $html);
|

29-07-2008, 19:38
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
@3dmax
warum ein array und implode? eine einfache zeichenkettenverknüpfung tut es doch genau so.
PHP-Code:
$options = array('huhu', 'hallo', 'blub');
$html = '<form action="test.php" method="GET" name="Formular1" id="Formular1">';
$html .= '<select name="matname" id="matname" onchange="this.form.submit();">';
foreach($options as $option_value => $option_text)
{
$html .= '<option value="'.$option_value.'">'.$option_text.'</option>';
}
$html .= '</select>';
$html .= '</form>';
echo $html;
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

29-07-2008, 19:41
|
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Zitat:
Original geschrieben von Kropff
warum ein array und implode? eine einfache zeichenkettenverknüpfung tut es doch genau so.
|
geht natürlich auch.
aber so hat man "schöneren" html-quelltext (zeilenumbruch)  und "\n" ist sonst zu aufwändig wegen des quotens, finde ich.
|

29-07-2008, 19:45
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
|
und "\n" ist sonst zu aufwändig wegen des quotens
|
OffTopic: dafür hat man einen shortcut in seinem editor
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

29-07-2008, 20:02
|
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Zitat:
Original geschrieben von Kropff
OffTopic: dafür hat man einen shortcut in seinem editor
|
ich meinte jetzt eher, dass ich html immer in single quotes schreibe und die html-attribute in double-quotes. und denn kann man ja \n nicht verwenden - verstehst du.
|

29-07-2008, 20:19
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
ich doch auch:
PHP-Code:
$html .= '<option value="'.$option_value.'">'.$option_text.'</option>'."\n";
und für das ."\n" hab ich einen shortcut.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

29-07-2008, 21:05
|
|
erwin_lier
Newbie
|
|
Registriert seit: Jul 2008
Beiträge: 33
|
|
Hallo 3DMAX,
Hallo Kropff,
mann, das hat ja mit etwas auf meine Kenntnisse umbauen wieder schnell geklappt.
Aber, bitte, das müßt ihr verstehen, als php-Neuling liest man Bücher und probiert und sucht im WWW ewig und 3 Tage, und wenn man dann nach einiger Zeit etwas Wissen angespart hat, kann man über die Anfänge nur noch lachen. Deshalb bitte Nachsicht und endlose Geduld mit den Neuen.
Vielen Tausend Dank
Erwin
|
|
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
|