Du bist hier: Seitenreport Forum Web-Entwicklung PHP & MySQL Mehrere Auswahlfelder und nur ein Submit-Button
Mehrere Auswahlfelder und nur ein Submit-Button
| Verfasst am: 01. 07. 2011 [22:31] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| Hallo zusammen! Es würde mich freuen, wenn ich Eure Hilfe in Anspruch nehmen könnte: Ich habe ein Formular mit mehreren Auswahlfeldern. Das Formular habe ich nun so umgestaltet, das ich nur noch ein Reset bzw. Submit-Button habe. Bislang funktioniert es leider nur, wenn man den Wochentag auswählt. Die anderen Auswahlfelder ignoriert die Routine. PHP <table> <tbody> <form action="kurssuche.php" method="post" accept-charset="utf-8"> <tr> <td><strong>Angebot:</strong></td> <td width="600"> <select name="searchterm" size="1" id="Angebot" class="select"> <?php //Angebot auslesen $sqlbefehl =" Select distinct Angebot From programm ORDER BY Angebot "; $erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl); while($cat = mysql_fetch_assoc($erg_cats)){ echo '<option value="'.$cat['Angebot'].'">'.$cat['Angebot'].'</option>'; } ?> </select> </td> <td width="550"> <style="text-align:left;">Der MTV Treubund behält sich das Recht vor, Angebote mit schwacher Resonanz unangekündigt einzustellen </td> </tr> <tr> <td><strong>Ort:</td> <td> <select name="searchterm" size="1" id="Ort" class="select"> <?php //Ort auslesen $sqlbefehl =" Select distinct Ort From programm ORDER BY Ort "; $erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl); while($cat = mysql_fetch_assoc($erg_cats)){ echo '<option value="'.$cat['Ort'].'">'.$cat['Ort'].'</option>'; } ?> </select> <!--<input type = "submit" value="Suchen" /> <input type = "reset" value="Abbrechen" /> </form>--> </td> <td width="550"> <style="text-align:left;">Der MTV Treubund behält sich das Recht vor,die Kurs-Orte bei Bedarf zu wechseln</style> </td> </tr> <tr> <td><strong>Übungsleiter:</strong></td> <td> <select name="searchterm" size="1" id="Uebungsleiter" class="select"> <?php //Übungsleiter auslesen $sqlbefehl =" Select distinct Uebungsleiter From programm ORDER BY Uebungsleiter "; $erg_cats = mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl); while($cat = mysql_fetch_assoc($erg_cats)){ echo '<option value="'.$cat['Uebungsleiter'].'">'.$cat['Uebungsleiter'].'</option>'; } ?> </select> </td> <td width="700"> <style="text-align:left;">Der MTV Treubund behält sich vor, Kursleiter (auch sehr kurzfristig) auszuwechslen</style> </td> </tr> <tr> <td><strong>Tageszeit:</strong></td> <td> <select name="searchterm" size="1" id="Tageszeit" class="select"> <option value="0">Uhrzeit</option> <option value="Vormittags">08 h - 12 h</option> <option value="Nachmittag">12 h - 18 h</option> <option value="Abends">18 h - 22 h</option> </select> </td> <td width="550"> <style="text-align:left;">mögliche zeitliche Verlegungen durch den MTV Treubund sind nicht ausgeschlossen</style> </td> </tr> <tr> <td><strong>Wochentag:</strong></td> <td> <select name="searchterm" size="1" id="Tage" class="select"> <option value="0">Wochentag</option> <option value="Montag">Montag</option> <option value="Dienstag">Dienstag</option> <option value="Mittwoch">Mittwoch</option> <option value="Donnerstag">Donnerstag</option> <option value="Freitag">Freitag</option> <option value="Samstag">Samstag</option> <option value="Sonntag">Sonntag</option> </select> </td> <td width="550"> <style="text-align:left;">Der MTV Treubund behält sich die örtliche Verlegung von Kursen (bei Bedarf auch sehr kurzfristig) vor</style> </td> </tr> <td></td><td><input name="reset" type="reset" id="reset2" value="Zurücksetzen" /> <input type="submit" id="send2" name="send" value="Ergebnisse anzeigen" /></td> <td width="12"></td> </tr> </form> </tbody> </table> Funktioniert das nur mit js? Weil dann kann ich es wohl abhaken, da ich mich damit überhaupt nicht auskenne! Danke im voraus! Marcus | |||
| Verfasst am: 01. 07. 2011 [22:51] | |||
Matthes Dabei seit: 08.05.2010 ![]() 174 Beiträge | Beitrag hilfreich? | ||
| Du benutzt gleiche Namen für alle Felder. Damit bekommt die Variable den Wert des letzten Feldes dieses Namens. Entweder aus den Namen ein "searchterm[]" machen, dann hast Du die Auswahlen als Array, oder unterschiedliche Namen verwenden. Du machst das aber nicht beruflich, oder...? Wenn sowas nicht klappt, lass Dir $_POST ausgeben (var_export, print_r, ...) und lies die Anzeige aufmerksam. In der Regel fällt einem dann schon auf, dass man gleiche Namen verwendet. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 01.07.2011 um 22:56.] Mal: "May have been the losing side. Still not convinced it was the wrong one." | |||
| Verfasst am: 01. 07. 2011 [23:03] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| Hallo Matthes! Danke soweit! Beruflich? Um Gottes Willen, nee. Ich bastel das in meiner Freizeit, und um das vielleicht mal irgendwann zu lernen. Beruflich würde ich ja am langen Arm verhungern... *lol* | |||
| Verfasst am: 02. 07. 2011 [00:06] | |||
Ultima Dabei seit: 09.07.2010 ![]() 759 Beiträge | Beitrag hilfreich? | ||
| Dafür brauchst du kein JavaScript. Wie Matthes schon sagte, gib allen Suchkriterien unterschiedliche Bezeichnungen. Danach einfach prüfen welche gesetzt wurden und daraus entsprechend die WHERE Bedingungen bilden für die SQL Abfrage. So kannst du auch die Anzeige eingrenzen oder besser gesagt die User können gezielter suchen. JS brauchst du erst wenn du die Ergebnisse direkt einblenden willst ohne die Seite neu zu laden. Schöne Grüße Thomas [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.07.2011 um 00:07.] Mein Portal: Ultima-Project.net - Gold für alle | |||
| Verfasst am: 02. 07. 2011 [12:51] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| Hallo Ultima! Auch Dir Danke für Deine Antwort. Dann weiß ich schon mal ein wenig weiter. Und da ihr mir bei der Abfrage damals ja auch schon so gut geholfen habt, brauche ich die ja eigentlich 'nur' entsprechend anzupassen Das, denke ich, sollte sogar ich hinbekommen. | |||
| Verfasst am: 02. 07. 2011 [17:12] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| So, ich habs tatsächlich gebacken bekommen. Aber ich würde gerne noch von den Experten wissen, obs da Optimierungspotenzial gibt. Meistens ist das bei so zusammengeschusterten Code ja der Fall: PHP if (isset($_POST['Angebot']) && !empty($_POST['Angebot']) || ($_POST['Ort']) && !empty($_POST['Ort']) || ($_POST['Uebungsleiter']) && !empty($_POST['Uebungsleiter']) || ($_POST['Tageszeit']) && !empty($_POST['Tageszeit']) || ($_POST['Tage']) && !empty($_POST['Tage'])) {
$db = mysql_connect("localhost","xxxxx","xxxxx") or die(mysql_error());
mysql_select_db("xxxxx") or die ("Die Datenbank existiert nicht.");
mysql_query('SET NAMES `utf8`');
$begriff = mysql_real_escape_string($_POST['Angebot']. $_POST['Ort']. $_POST['Uebungsleiter']. $_POST['Tageszeit']. $_POST['Tage']);Danke und Gruß Marcus | |||
| Verfasst am: 02. 07. 2011 [17:32] | |||
romacron Dabei seit: 01.11.2009 ![]() 1143 Beiträge | Beitrag hilfreich? | ||
| Was auf den ersten Blick auffällt $_POST vars im Code zu aller allererst Alle Variablen aus dem $_POST nehmen. in etwa so: $validatetPostVars ~~query( (string)$validatetPostVars['Angebot'] .(int)$validatetPostVars['leiter']); ...so diese Richtung. ggf noch prüfen ob die übergebenen Werte eine maximale Länge nicht übersteigen. Spassvögel submitten gern eine Textdatei mit 1.99MB. Damit quält sich das Script ![]() ich glaube Matthes oder Oscar hatten zum Abfangen von Posts und Gets gleich am Anfang des Scripts kommentiert | |||
| Verfasst am: 02. 07. 2011 [18:59] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| Hallo Roman! Wahrscheinlich ein völlig depperte Frage, aber eben Anfänger: Auch wenn alles nur Select-Felder sind und keine Eingabe-Felder? Weil das Formular nur aus Aswahlfeldern besteht: Hier zu finden Gruß Marcus | |||
| Verfasst am: 02. 07. 2011 [19:04] | |||
Matthes Dabei seit: 08.05.2010 ![]() 174 Beiträge | Beitrag hilfreich? | ||
| Das kann selbst das schlechteste Scriptkiddie innerhalb einer Minute umbasteln und eigene Werte übergeben. Wann immer Du Werte vom Besucher erhälst, musst Du sie prüfen und ggf. entschärfen. Egal ob das jetzt GET-Parameter sind, ob Du ein Formular verarbeitest, ob es Cookies sind, oderoderoder. Alle Daten, die von außerhalb kommen, sind potentiell böse, jederzeit. PS: Wobei Du die POST-Variablen ja durch mysql_real_escape_string jagst, so schlimm ist es dann nicht mehr. PPS: Entferne doch bitte einer das Passwort aus Marcus' Codeschnippsel... ;) [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.07.2011 um 19:08.] Mal: "May have been the losing side. Still not convinced it was the wrong one." | |||
| Verfasst am: 02. 07. 2011 [20:54] | |||
Marcus Dabei seit: 27.01.2011 Themenersteller ![]() 85 Beiträge | Beitrag hilfreich? | ||
| Also müsste das ähnlich diesem hier sein: PHP $sqlbef = "insert into programm (angebot, tage, ort, von, bis, uebungsleiter, tageszeit, zielgruppe, anmerkung) values ('$angebot', '$tage', '$ort', '$von', '$bis', '$uebungsleiter', '$tageszeit', '$zielgruppe', '$anmerkung')";Nur das das nicht insert into heißt, sondern $Validate PostVars? | |||
Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.
Werde in Echtzeit über neue Foren-Beiträge informiert:
2 Mitglieder waren innerhalb der letzten 15 Minuten online (47 heute gesamt):
Deep_Thought, Ostseebrise
Administratoren und Moderatoren:
[keine]
Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Lade...
Neueste Foren-Beiträge
| Abstimmung: 20.000 Mitglieder Jubiläum - was tun? Internes & Ankündigungen / Internes | Gestern [23:07] | |
| Microsofts soziales Netzwerk So.cl Internet / News | Gestern [20:03] | |
| Nicht nachvollziehbarer CSS Fehler Internes & Ankündigungen / Analyse-Ergebnisse | Gestern [13:37] | |
| Partnerprogramm: Eintrag für Kunden erledigt Internes & Ankündigungen / Internes | 22. 05. 2012 [10:35] | |
| Hotelbericht Entwickler Treffpunkt / Website vorstellen | 22. 05. 2012 [09:28] |
Lade...
Aktuelle Artikel:
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
18. Mai 2012
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
15. Mai 2012
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
14. Mai 2012




