php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.08.2009, 12:24  
yanfred
Gast
 
Beiträge: n/a
Standard [Erledigt] Affenformular - Select - Funktioniert nicht

Hallo,

bin gerade dabei, mir ein "Affenformular" zu basteln.

Nun habe ich eine <select> box verwendet und möchte dort per Post einen Wert anzeigen lassen, wenn das Formular neu geladen/aufgerufen wird. Hier habe ich gesehen, wies eigentlich gehen soll, und hab es auch eingebaut:

Code:
        <select name="tor">
        <option value="wahlen"  <?php 
  if ('wahlen' == $_POST['tor']) {
      echo 'selected="selected"'; 
  }
  ?>
>- - - Bitte w&auml;hlen - - -</option>
        <option value="kein"  <?php 
  if ('kein' == $_POST['tor']) {
      echo 'selected="selected"'; 
  }
  ?>
>Nein</option>
        <?php
          for($i=0;$i<mysql_num_rows($result);$i++)
            { 
              echo "<option value=\"".mysql_result($result,$i, 'bezeichnung'); 
              if (mysql_result($result,$i, 'bezeichnung') == $_POST['tor']) 
              {
                echo 'selected="selected"'; 
              }
              echo    ">".mysql_result($result,$i, 'bezeichnung')." | ".mysql_result($result,$i, 'lange')."cm hoch | ".mysql_result($result,$i,'farbe')."</option>";
            }
        ?>
        </select>
Wenn ich die Option "Nein" oder "Bitte wählen" auswähle, werden diese Werte auch übernommen, nur die Werte aus der Datenbank werden nicht erneut angezeigt, dann kommt nach einem Neuaufruf wieder "Bitte wählen"

Weiß vielleicht jemand, woran das liegen könnte?

Danke schonmal!

Gruß
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.08.2009, 12:27  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Schau dir doch mal an wie du dein <option> - Tag zusammenbaust:

PHP-Code:
echo "<option value=\"".mysql_result($result,$i'bezeichnung'); 
              if (
mysql_result($result,$i'bezeichnung') == $_POST['tor']) 
              {
                echo 
'selected="selected"'
              }
              echo    
">"
Da kann dir auch der Browserquelltext behilflich sein!

Gruß
__________________
HalloPHP
Asipak ist offline  
Alt 13.08.2009, 12:36  
yanfred
Gast
 
Beiträge: n/a
Standard

Hallo und schonmal danke,

dachte mir schon, das es an einem " o.Ä. schaut. Habe den Fehler glaube ich grade gefunden. nun hab ich jedoch das Problem, das er zwar einen Wert beim neuladen übermittelt, jedoch nicht den gewählten...

Bsp: ich habe 12 Artikel in der Datenbank, er übermittelt jedoch das 8te element und zeigt es bei neuaufruf an =/

Geändert von yanfred (13.08.2009 um 12:42 Uhr).
 
Alt 13.08.2009, 12:42  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
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

Mit solchen Selectboxen hat man sehr oft zu tun und manchmal hat man gleich ein Dutzend davon im Formular. Daher hab ich mir mal eine Funktion gebaut, die den Kram erledigt:

PHP-Code:
function selbox($feldname,$werte,$selwert=0)
{

    
$selbox '<select name="' $feldname '">' "\n";
    foreach (
$werte as $val => $text) {
        
$selbox .= '<option value="';
        
$selbox .= $val;
        
$selbox .= '"';
        if (
$val == $selwert) {
            
$selbox .= ' selected = "selected"';
        }
        
$selbox .= '>';
        
$selbox .= $text;
        
$selbox .= '</option>' "\n";
    }
    
$selbox .= '</select>' "\n";       
    return 
$selbox;


Wenn man also eine Selectbox für Anreden braucht, dann ruft man die Funktion so auf:

PHP-Code:
$anredetexte = array(
   
'0' => 'Bitte Anrede auswählen',
   
'1' => 'Frau'
   
'2' => 'Herr'
);  
if ( !isset(
$anrede) ) {
  
$anrede '0';
}

$htmlcode selbox('anrede',$anredetexte,$anrede);
echo 
$htmlcode
Der PHPcode wird schlanker, weil sich die Schleifenkonstruktionen nicht wiederholen.
Wolla ist gerade online  
Alt 13.08.2009, 12:46  
yanfred
Gast
 
Beiträge: n/a
Standard

EDIT:

so wie ichs momentan habe

Code:
echo "<option value=\"".mysql_result($result,$i, 'bezeichnung')."\" "; 
              if (mysql_result($result,$i, 'bezeichnung') == $_POST['tor']) 
              {
                echo 'selected="selected"'; 
              }
Klappts, Problem ist nur, das die IF Anweisung Probleme macht... Grund:

POST['tor'] ist
Code:
".mysql_result($result2,$i, 'bezeichnung')." | ".mysql_result($result2,$i, 'lange')."cm hoch | ".mysql_result($result2,$i, 'farbe')."
in der IF Anweisung fragt er aber nur nach dem ersten ab:
Code:
 if (mysql_result($result,$i, 'bezeichnung')
Wie kann ich die if Anweisung ändern/anpassen? Bekam eben einen Parse Error....

Gruß

Geändert von yanfred (13.08.2009 um 12:57 Uhr).
 
Alt 13.08.2009, 13:00  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
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

PHP-Code:
$user = array('0','Bitte auswählen');

$sql "SELECT userid,username FROM user";
$erg mysql_query($sql);
while ( 
$row mysql_fetch_assoc($erg) ) {
  
$user[$row['userid']] = $row['username'];
}

$html selbox('user',$user,'0'); 
Ohne zu testen, aber ungefähr so passt es.
Wolla ist gerade online  
Alt 13.08.2009, 13:21  
yanfred
Gast
 
Beiträge: n/a
Standard

Sorry, geht immer noch nicht, obwohl angepasst


Code:
function selbox($feldname,$werte,$selwert=0)
{

    $selbox = '<select name="' . $feldname . '">' . "\n";
    foreach ($werte as $val => $text) {
        $selbox .= '<option value="';
        $selbox .= $val;
        $selbox .= '"';
        if ($val == $selwert) {
            $selbox .= ' selected = "selected"';
        }
        $selbox .= '>';
        $selbox .= $text;
        $selbox .= '</option>' . "\n";
    }
    $selbox .= '</select>' . "\n";       
    return $selbox;

}
-----------------------------------

Code:
$daten = array('Bitte auswählen',0);
$sql = "SELECT ID, bezeichnung FROM ".$tabellenname." WHERE kategorie = 'Tore'";
$erg = mysql_query($sql);
while ( $row = mysql_fetch_assoc($erg) ) {
  $daten[$row['ID']] = $row['bezeichnung'];
}

$html = selbox('tor',$daten,'0');

echo $html;
---------------------------
 
Alt 13.08.2009, 13:27  
yanfred
Gast
 
Beiträge: n/a
Standard Gelöst!

Hallo,

Murphys Gesetz hat mal wieder zugeschlagen.... Mein Code vom Anfang war die ganze Zeit richtig

Hatte nur folgenden Fehler:
Code:
if (mysql_result($result,$i, 'bezeichnung') == $_POST['tor'])
statt

Code:
if (mysql_result($result,$i, 'ID') == $_POST['tor'])

Da es Artikel mit der selben Bezeichnung gab, war es kein Wunder, das der x.te Wert der Liste markiert wurde...

Trotzdem thx to all!
 
 


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
SELECT Unterabfragen optimieren AKraisser Datenbanken 14 12.08.2009 16:51
SQL select fehlerhafte Resultate. Ist PHP 64 Bit das Problem? peterw Server, Hosting und Workstations 6 21.04.2009 09:19
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
Select zusammenfügen... chris3001 Datenbanken 15 27.04.2006 10:54
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
[Erledigt] SQL-Injection funktioniert nicht Datenbanken 4 03.12.2005 20:06
SELECT funktioniert nicht PHP Tipps 2007 5 16.11.2005 17:10
SELECT um eine Bedingung erweitern ?! Datenbanken 2 22.10.2005 10:09
Probleme mit Inner Select Datenbanken 0 19.10.2005 15:22
selbst gelöst! Select <option> kleines Problem Dropdow 24bits PHP Tipps 2005-2 0 15.10.2005 19:19
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
[Erledigt] SELECT in SELECT PHP Tipps 2005 5 06.04.2005 22:30
[Erledigt] [gelöst] MySQL abfrage eingrenzen anhand einer SELECT Auswah Datenbanken 13 01.12.2004 18:42
selektierter wert in select box anzeigen PHP Tipps 2004 6 30.08.2004 13:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
affenformular select, php affenformular select, php echo select, affenformular php select, php affenformular, selected funktioniert nicht, <select> selected funktioniert nicht, selectedindex zählt nicht runter, select affenformular, php affenformular selected, php echo \ selected=\'selected, http://www.php.de/php-einsteiger/58032-erledigt-affenformular-select-funktioniert-nicht.html, select option sql-abfrage ausgewählt selected, html selected funktioniert nicht, php form funktioniert nicht, selected funktioniert nicht html, affenformular liste, php select option funktioniert nicht, php selected funktioniert nicht, affenformular select form

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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