php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2010, 15:01  
Neuer Benutzer
 
Registriert seit: 11.09.2010
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Johnny2511 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Auswahllisten - Nach Aktualisierung wieder auf 1. Eintrag - Ausgewähltes soll bleiben

Guten Tag,

ich habe ein Problem mit meinem Konfigurator. Ich habe 5 Auswahllisten, aus denen man die Zusammensetzung eines Wintergartens wählen kann.

Wähle ich aus allen 5 Listen den gewünschten Inhalt, drücke dann auf den Submit-Button und aktualisiere die Seite (es erscheint passende Grafik und Preis), dann erscheint alles wie gewünscht nur die Auswahllisten "springen" wieder auf die erste Position (Bitte wählen) der Auswahl zurück.

Nachfolgend mein Code...

PHP-Code:
<div id="content">
<?php

$Wintergartentyp 
$_POST["Wintergartentyp"];
$Abmessungen $_POST["Abmessungen"];
$Elementauswahl $_POST["Elementauswahl"];
$Farben $_POST["Farben"];
$Extras $_POST["Extras"];

?>


<table width="920" cellspacing="1">
  <tr>
    <td  height="30"width="200">&nbsp;</td>
    <td width="239">
<?php
if($Wintergartentyp == "Bitte wählen" || $Abmessungen == "Bitte wählen" || $Elementauswahl == "Bitte wählen" || $Farben == "Bitte wählen" || $Extras == "Bitte wählen")
{
    echo 
"Bitte vervollständigen Sie die Auswahl";    
}
?>
    
    
    </td>
    <td width="405" rowspan="10" align="left" valign="top">

<?php

if($Wintergartentyp == "Typ 1" && $Abmessungen == "4000 mm x 2500 mm" && $Elementauswahl == "2 flügelige Balkontür / Fenster" && $Farben == "grün / Holz dunkel" && $Extras == "Dachfenster (elektrisch)")
{
    echo 
"Preis: 15.158,22 €";
    echo 
"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo 
"<img src= \"WiGa-Konfigurator/1_4x2,5_gHd_2BT1FE_DFE.JPG\" width=\"350\" height=\"160\" />";
}
else
if(
$Wintergartentyp == "Typ 1" && $Abmessungen == "4000 mm x 2500 mm" && $Elementauswahl == "2 flügelige Balkontür / Fenster" && $Farben == "grün / Holz dunkel" && $Extras == "keine")
{
    echo 
"Preis: 13.670,72 €";
    echo 
"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo 
"<img src= \"WiGa-Konfigurator/1_4x2,5_gHd_2BT1FE_k.JPG\" width=\"350\" height=\"160\" />";

    
}
else
if(
$Wintergartentyp == "Typ 1" && $Abmessungen == "4000 mm x 2500 mm" && $Elementauswahl == "Hebeschiebetür / Balkontür / Fenster" && $Farben == "grün / Holz dunkel" && $Extras == "Dachfenster (elektrisch)")
{
    echo 
"Preis: 15.190,35 €";
    echo 
"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo 
"<img src= \"WiGa-Konfigurator/1_4x2,5_gHd_HST1BT2FE_DFE.JPG\" width=\"350\" height=\"160\" />";

    
}
else
if

[... = 
32 Kombinationen]

?>
---> Hier die if-Anweisungen, jeder Kombination wird ein Preis und eine bestimmte Grafik zugewiesen <---


PHP-Code:
<td height="30"><div align="right">Wintergartentyp:</div></td>
    <td>
<form action="Wintergarten-Konfigurator.php" method="post">
<select style="width: 240px" name="Wintergartentyp">
<?php
$abfrage 
"SELECT Typ, Preis FROM typ ORDER BY Typ_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    { if (
$row["Typ"] <> "")
                  {
                   echo 
'<option>' $row ['Typ'] . '</option>';
                                  }
     }
?>
</select>
    </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="30"><div align="right">Abmessungen:</div></td>
    <td>
<select style="width: 240px" name="Abmessungen">
<?php
$abfrage 
"SELECT Abmessungen FROM abmessungen ORDER BY Abmessungen_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    { if (
$row["Abmessungen"] <> "")
                  {
                   echo 
'<option>' $row ['Abmessungen'] . '</option>';
                                  }
     }
?>
</select>
    </td>
  </tr>
  <tr>
    <td height="30"><div align="right">Elementauswahl:</div></td>
    <td>
<select style="width: 240px" name="Elementauswahl">
<?php
$abfrage 
"SELECT Elemente FROM elemente ORDER BY Elemente_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    { if (
$row["Elemente"] <> "")
                  {
                   echo 
'<option>' $row ['Elemente'] . '</option>';
                                  }
     }
?>
</select>
    </td>
  </tr>
  <tr>
    <td height="30"><div align="right">Farben(außen/innen):</div></td>
    <td>
<select style="width: 240px" name="Farben">
<?php
$abfrage 
"SELECT Farben FROM farben ORDER BY Farben_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    { if (
$row["Farben"] <> "")
                  {
                   echo 
'<option>' $row ['Farben'] . '</option>';
                                  }
     }
?>
</select>
    </td>
  </tr>
  <tr>
    <td height="30"><div align="right">Extras:</div></td>
    <td>
<select style="width: 240px" name="Extras">
<?php
$abfrage 
"SELECT Extras FROM extras ORDER BY Extras_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    { if (
$row["Extras"] <> "")
                  {
                   echo 
'<option>' $row ['Extras'] . '</option>';
                                  }
     }
?>
</select>
---> hier die 5 Auswahllisten, die ihren Inhalt aus der Datenbank in PhpMyAdmin beziehen <---


PHP-Code:
<input type="submit" name="Ok" value="Senden" /> 
--> und der Submit-Button <---


Hat jemand eine Idee / einen Tipp für mich?
Wie kann ich es umsetzen, dass nach der Aktualisierung die 5 ausgewählten Positionen in den Listen beibehalten werden und nicht wieder auf die 1. Position springen?

Anbei ein Screenshot vom Konfigurator...

Vielen Dank schonmal!
MfG Johnny
Miniaturansicht angehängter Grafiken
auswahllisten-nach-aktualisierung-wieder-auf-1-eintrag-ausgewaehltes-soll-bleiben-1.jpg  
Johnny2511 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2010, 15:07  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 724
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Johnny2511 Beitrag anzeigen
Hat jemand eine Idee / einen Tipp für mich?
Stichwort "Affenformular"
Wenn Option-Wert per POST übertragen, dann selected-Attribut setzen.
hts ist offline  
Alt 05.11.2010, 19:18  
Neuer Benutzer
 
Registriert seit: 11.09.2010
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Johnny2511 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Ja das ist mir schon klar, aber WIE?
Johnny2511 ist offline  
Alt 05.11.2010, 19:33  
Benutzer
 
Registriert seit: 24.10.2010
Beiträge: 65
PHP-Kenntnisse:
Anfänger
infi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Johnny2511 Beitrag anzeigen
Ja das ist mir schon klar, aber WIE?
Zitat:
Zitat von hts Beitrag anzeigen
Stichwort "Affenformular"
Wenn Option-Wert per POST übertragen, dann selected-Attribut setzen.
Wenn Option-Wert per Post übertragen wurde und dieser Wert == $row[wert], dann selected-Attribut setzen.

PS: noch ein kleiner Tip: <option value...
infi ist offline  
Alt 06.11.2010, 17:00  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

[MOD: Thread verschoben]
Asipak ist offline  
Alt 06.11.2010, 17:01  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich hab mir eine Funktion gebaut, welche solche Dropdown-Listen-Codes zusammenbaut. Man muss als parameter nur die Listenwerte als Array und den Vorgabewert übergeben. Zugleich kann man sagen, wieviele Zeilen hoch die Box sein soll und ob eine Mehrfachauswahl möglich ist.
PHP-Code:
function selbox($feldname,$werte,$selwert=0,$size=1,$multiple='')
{
    
// $feldname: Der Name des Eingabefeldes innerhalb des Formulars
    // $werte: Array mit allen möglichen Werten
    // $selwert: Der Wert aus $werte, der vorselektiert sein soll
    
    
$selbox '<select name="{feldname}" size="{size}" {multiple}>' "\n";
    
$ers = array(
            
'{feldname}'    => $feldname,
            
'{size}'        => $size,
            
'{multiple}'    => $multiple
    
);
    
$selbox strtr($selbox,$ers);
    
    foreach (
$werte as $val => $text) {
        
$selbox .= '<option value="';
        
$selbox .= $val;
        
$selbox .= '"';
        if ( 
is_array($selwert) ) {
            if ( 
in_array($val,$selwert) ) {
                
$selbox .= ' selected = "selected"';
            }
        } else {
            if (
$val == $selwert) {
                
$selbox .= ' selected = "selected"';
            }
        }
        
$selbox .= '>';
        
$selbox .= $text;
        
$selbox .= '</option>' "\n";
    }
    
$selbox .= '</select>' "\n";       
    return 
$selbox;

Wenn man z.B. Die Anreden Herr, Frau, Firma haben will und das ganze als $_POST['anrede'] ankommen soll, dann geht das so:
PHP-Code:
$werte = array(
   
'Bitte wählen' => 'Bitte wählen',
   
'Herr' => 'Herr',
   
'Frau' => 'Frau',
   
'Firma' => 'Firma'
);
$anrede 'Herr'// Vorgabe, z.B. aus $_POST
$selbox_anrede selbox('anrede',$werte,$anrede,4);
echo 
$selbox_anrede
Im Prinzip kannst du damit jede Selektbox aufbauen - du musst nur die anzuzeigenden Listenwerte in einen Array packen.

Beispiel für Mehrfachselektion:
PHP-Code:
$eis = array('Zitrone','Vanille');
$eissorten = array(
   
'Zitrone' => 'Zitrone',
   
'Erdbeer' => 'Erdbeer',
   
'Vanille' => 'Vanille'
);
$selbox_eis selbox('eis',$eissorten,$eis,1,'multiple');
echo 
$selbox_eis
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?

Geändert von Wolla (06.11.2010 um 17:06 Uhr).
Wolla ist offline  
Alt 15.11.2010, 22:43  
Neuer Benutzer
 
Registriert seit: 11.09.2010
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Johnny2511 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Hallo habe bislang folgenden Ansatz:

PHP-Code:
<select style="width: 240px" name="Wintergartentyp">
<?php
$abfrage 
"SELECT Typ, Preis FROM typ ORDER BY Typ_ID";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnisMYSQL_ASSOC))
{ if (
$row["Typ"] <> "")
{
$selected = ($Wintergartentyp==$row ['Typ'])?' selected="selected"':'';
echo 
'<option'.$selected.'>' $row ['Typ'] . '</option>';
}
}
?>
</select>
funktioniert irgendwie nicht... wisst ihr woran das liegen könnte???
habe jetzt schon so viel probiert und umgeschrieben aber es ist einfach zum verzweifeln...ich finde den fehler nicht
wäre top wenn jemand helfen könnte
Johnny2511 ist offline  
Alt 15.11.2010, 23:13  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

Hi Dein Ungleich-Operator sieht irgendwie nach Basic aus. Versuch mal != für ungleich.
drsoong ist offline  
Alt 15.11.2010, 23:24  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

#6 nicht verstanden?
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Menü ein - und ausklappen abdullah JavaScript, Ajax und mehr 8 27.02.2010 23:54
[Erledigt] Durch einen DB Eintrag alle anderen Einträge bearbeiten Rutor PHP Tipps 2010 8 08.02.2010 13:25
[Erledigt] Fehler bei insert into?!? Kein Eintrag :( gutelaune75 PHP Tipps 2009 8 03.01.2010 15:29
Eintrag in DB funktioniert aber bei Aktualisierung Eintrag nochmal Wolf6660 Datenbanken 9 04.09.2009 19:57
2 <form> überschneiden sich... voda HTML, Usability und Barrierefreiheit 16 06.08.2009 11:35
Array eintrag für Eintrag durchgehen und jeweils Feld hinzufügen Stephan_87 PHP Tipps 2009 3 12.02.2009 19:23
dynamische abhängige Auswahllisten + MysqlDatenbank freakymiky JavaScript, Ajax und mehr 6 15.06.2008 04:13
Sortierreihenfolge nach Eintrag oder letzter Änderung leuktra Datenbanken 7 29.01.2007 19:20
UPDATE eintrag falls vorhanden ansonsten INSERT Plague Datenbanken 4 19.01.2007 13:36
Mysql Eintrag über mehrere Zeielne Eintrag funzt nicht PHP Tipps 2006 3 14.03.2006 19:38
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
PHP klappmenü PHP Tipps 2005-2 1 15.10.2005 00:31
Eintrag wird nicht eingetragen (Kontrollfunktion lügt?) PHP Tipps 2005-2 0 02.10.2005 12:00
Chat aktualisieren bei neuem eintrag... PHP-Fortgeschrittene 2 24.04.2005 15:11
[Erledigt] Abfrage ob Eintrag schon in DBbevor Eintrag gespeichert wird Datenbanken 6 06.08.2004 22:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
auswahlliste selected bitte wählen, auswahlisten affenformular php select, php nach auswahl aktualisieren, affenformular liste nach behalten submit, php auswahlliste letzte auswahl beibehalten, auswahlliste auf 1. eintrag setzen, auswahllisten mit php erhalten bleiben, selektiertes feld php wieder anzeigen, http://www.php.de/php-einsteiger/73629-auswahllisten-nach-aktualisierung-wieder-auf-1-eintrag-ausgewaehltes-soll-bleiben.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum