Dropdown Menü

In dem Code ist kein Fehler. Die einzige Meldung die er mir zeigt rührt daher dass die MySQL-Anmeldedaten bei mir ungültig sind.
Ich vermute du rufst eine andere Datei auf als du zuvor hochgeladen hast.

Im übrigen empfehle ich dir auf dem Server alle Fehlermeldungen anzuschalten, also ‚error_reporting 2147483647‘ (Das PHP-Manual empfiehlt diese Zahl, um sämtliche Fehlermeldungen anzuschalten)
Gleichzeitig solltest du aber die Fehlermeldungen auf öffentlichen Seiten nicht anzeigen, sondern in eine Logdatei schreiben. Denn dem Seitenbesucher nützen Fehlermeldungen nichts, der Programmierer muss sie lesen. Fürs Entwickeln sollten die Meldungen natürlich weiterhin direkt auf der Seite landen.

Das wäre dann
error_log Pfad_zur_Logdatei
log_errors On
display_errors Off

Am einfachsten geht das per .htacces-Datei (Apache-Server vorausgesetzt):

php_value error_reporting 2147483647
php_value error_log /www/htdocs/w0068103/elog/error.log
php_flag log_errors On
php_flag display_errors Off

Auf Dauer ist es auch praktisch sich auf dem eigenen Rechner einen Server zu installieren, dann entfällt das ständige Hochladen und man ist nicht aufs Internet angewiesen.

Und wie schon mal gesagt wurde: das font-Tag ist veraltet. Wenn du es trotzdem verwendest, dann mach es wenigstens mit wider zu.

Johannes

Ok, habe den Font Tag zu gemacht. Aber die Fehlermeldung kommt ja noch, also muss ja noch irgendwas sein. Sonst könnte ich die Seite ja sehen.^^
Das mit der Fehlermeldungsdatei bzw. dem log kann ich nachher noch machen, da das eh alles noch nicht Online griffbereit ist.

Der Code in Re18 erzeugt bei mir keine Fehlermeldung (außer SQL). Er sollte also auch bei dir keine bringen, zumindest keinen parse error. Du hast gesagt, dass du einen echo-Befehl vereinfacht hast. Vielleicht war da vorher ein " zu wenig oder zu viel und in der vereinfachten Version stimmt es jetzt.

Johannes

Nein, ich schreibe ja nebenbei auch mti eienm Freund der PHP macht, da ich echt verzwifelt bin.^^
Und der hat den echo Befehl mit mir durchgekaut. In dem, der eien Tabelle erzeug, sit demnach auch nichts.

Was soll ich nun tun?

zB den Code posten

Ok, sry für die ganzen Fragen erstmal.^^ Habe endlich den Fehler gefunden.

Es war so dermaßen banal.

Unzwar habe ich die index.php die ganze zeit in den falschen ordner geschoben. :stuck_out_tongue:

Nun ahbe ich allerdings trotzdem das gleiche Problem wie gaaaanz am Anfang.

if ([‚dropdown‘] value=„000“)
{
echo „Hallo“;
}

Ist nicht richtig. ich weis aber auch nicht, wie ich das ansonsten Abfragen soll.
Also in 000 steht einfach nichts. Also wenn das ausgewählt ist, soll einfach nichts passieren. Und wenn 10 o.ä. drin stehen, dann soll eben was anderen passieren. Aber ich muss wissen, wie ich diesen wert abefragen kann.

if ([‚dropdown‘] value=„000“)

Es heißt nicht einfach [‚dropdown‘], sondern je nach Bedarf
$_GET[‚dropdown‘] - per GET übertagen
$_POST[‚dropdown‘] - Per POST übertragen
$_REQUEST[‚dropdown‘] - Per GET, POST oder Cookie übertragen

Ok, dass Problem hat sich damit auch behoben. Danke. :smile:

Wie kriege iche s nun hin, dass wenn ich A auswähle, oben auch A stehen bleibt und nicht das Feld wieder weiss wird?

\>a\>b\>c\>d\>e\>f

http://de.selfhtml.org/html/formulare/auswahl.htm#li…

Und noch was ganz wichtiges:
Wenn man Variablen, bei denen man nicht 100% weiß was drin steht in einem SQL-String verwendet, dann muss man diese unbedingt escapen. Wenn man Zahlen hat muss man sie trotzdem in Anführungszeichen setzen so wie man es mit Zeichenketten tun würde, sonst ist das escapen nutzlos.
Dazu eignet sich z.B. mysql_real_escape_string().
http://de3.php.net/manual/de/function.mysql-real-esc…

Also statt „SELECT * FROM a WHERE id = $_POST[‚id‘]“
das hier:
„SELECT * FROM a WHERE id = '“.mysql_real_escape_string($_POST[‚id‘])."’"

Auch in einer Variable aus einem Dropdown-Feld kann sonst was drin stehen. Man darf nicht davon ausgehen, dass dort nur Werte gesendet werden die laut HTML möglich sind.

Johannes

Danke für die Information/en. :smile:

Jedoch geht das, wie du es oeben reingeschrieben hast, leider nicht. Kannst du das vll als Beispiel nur für „a“ schreiben? Kann das ja dann einfach übernehmen.

Weil du hast da den HTML und den PHP Teil in eine zeile geschrieben, was etwas verwirrend wirkt.

Weil du hast da den HTML und den PHP Teil in eine zeile
geschrieben, was etwas verwirrend wirkt.

Naja das geht schlecht anders, denn die Ausgabe dieses PHP-Codes, nämlich ’ selected’, soll ja mitten in die Zeile rein.

Vielleicht gefällt es dir ja so besser:

<?php echo '<option value="10"';<br />if ($\_GET['dropdown'] == '10') echo ' selected';
echo '\>a'
?\>

Und wenn du ein POST-Formular hast, muss es natürlich $_POST heißen.

Bin jetzt soweit komplett fertig.
Einziges Problem ist noch.
Wenn die Einträge in der Liste stehen und ich darüber gehe, dann soll das ganze durch onmouseover grau hinterlegt werden.
Das funktioniert aber nur mit der ersten Zeile:

Wie immer: Ohne Code kann ich da nicht viel zu sagen.

Johannes

Firstname
Lastname
Phone
Mobile
Position
Email

if ($_POST[‚dropdown‘] == „10“)
{
$abfrage = „SELECT * FROM feige“;
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo „“.$row->Firstname."".$row->Lastname."".$row-&gt:stuck_out_tongue_winking_eye:hone."".$row->Mobile."
„.$row-&gt:stuck_out_tongue_winking_eye:osition.“".$row->Email."
";
}
}
?>

Firstname
Lastname
Phone
Mobile
Position
Email

if ($_POST[‚dropdown‘] == „10“)
{
$abfrage = „SELECT * FROM feige“;
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo ’ ';
echo
„“.$row->Firstname."".$row->Lastname."".$row-&gt:stuck_out_tongue_winking_eye:hone."/td>".$row->Mobile."
„.$row-&gt:stuck_out_tongue_winking_eye:osition.“".$row->Email."/td>
";
}
}
?>

Erstmal vielen Dank für deine Antwort. :smile:

Also, es geht, allerdings leider nicht ganz so wie es soll.^^

Unzwar ist jetzt über der liste ein grauer Kasten. Sobald man nun in die näher der Tabelle kommt, färbt sich bereits die erste zeile Rot. Geht man eins tiefer, so ist die nächste zeile rot. Geht man allerdings in die Tabelle rein, so ist dann immer die zeile rot die man auch rot haben will.
Das Problem ist eben nun, dass es sich schon färbt, wenn man noch nicht in der tabelle ist.

Und eine frage nebenbei. Ich laß, dass dieses onmouseover nicht in php gehen soll. Wieso geht es dann bei dir?^^

Also, es geht, allerdings leider nicht ganz so wie es soll.^^

Bei mir (Firefox 3.0.12 und Opera 9.64) ist nur Rot zu sehen, wenn der Zeiger über der Tabelle ist.

Und eine frage nebenbei. Ich laß, dass dieses onmouseover
nicht in php gehen soll. Wieso geht es dann bei dir?^^

PHP dient zum Erzeugen von HTML-, JavaScript- und CSS-Code. Es ist ein Unterschied, ob ein Codeschnipsel von PHP per echo ausgegeben wird oder ob er direkt von PHP interpretiert wird.

In diesem Fall ist das onmouseover ein Javascript-Code, den PHP per echo an den Browser schickt, wo er ausgeführt wird. PHP hat also mit dem onmouseover eigentlich gar nichts zu tun.