Dropdown auf Inhalt prüfen lassen
|
|
Catzenjaeger |
Geschrieben am 17. Mai 2016 11:32:46
|
![]() |
ich habe dropdowns im Formular die ich gerne auf ausfüllen prüfen möchte. Da eigentlich immer der erste wert angezeigt wird und wenn man den explizit nicht ändert auch so übernommen wird (was ja falsch sein kann) habe ich das hier eingefügt. Damit wird immer ein leeres Feld oben angezeigt Zitat $inf_insertdbrow[259] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', '')"; heisst hier wird kein wert vorgegeben alle anderen sehen so aus: Zitat $inf_insertdbrow[18] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Alien (1979)')"; $inf_insertdbrow[19] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Aliens (1986)')"; $inf_insertdbrow[20] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Alien 3 (1992)')"; $inf_insertdbrow[21] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Alien: Resurrection (1997)')"; $inf_insertdbrow[22] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Alien vs. Predator (2004)')"; $inf_insertdbrow[23] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Aliens vs. Predator: Requiem (2007)')"; $inf_insertdbrow[24] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Prometheus (2012)')"; $inf_insertdbrow[25] = DB_FIGURE_BRANDS." (figure_brand_id, figure_brand_name) VALUES ('', 'Alien: Covenant (2017)')"; und mit dem hier frage ich ab .. geht aber nicht Code Download Code //ABFRAGE OB FELDER GEFÜLLT SIND Habe noch was gefunden: Zitat echo "<script type='text/javascript'> function validatePost(frm) { if (frm.figure_title.value==\"\" || (frm.figure_file.value==\"\" && frm.figure_url.value==\"\")) { alert(\"".$locale['figure_522']."\"); return false; } } </script>\n"; habe da mal das zu das hier geändert aber da kommt kein fehler zürück ... komisch Zitat echo "<script type='text/javascript'> function validatePost(frm) { if (frm.figure_title.value==\"\" || (frm.figure_file.value==\"\" || (frm.figure_brand.value==\"\" && frm.figure_url.value==\"\")) { alert(\"".$locale['figure_522']."\"); return false; } } </script>\n"; Zusammengefügt am 17. Mai 2016 um 19:16:12: weis keiner von euch wie das geht? Ich habe ein Datensatz in der Datensatz leer gelassen den ich im Dropdown dann als erstes zeige (siehe Bild) Das habe ich der Übersicht gemacht weil sonst würde immer der erste Wert angezeigt der ja nicht immer stimmen muss. Damit niemand einfach auf SUBMIT drückt wollte ich alles leer lassen bis explizit was gewählt wurde. Dann wenn jemand SUBMIT drückt wollte ich checken lassen ob den was gewählt wurde (zumindest die Dropdowns sollen Pflichtfelder sein) Aber mein Code funzt nicht ... die figur wird trotzdem gesendet auch das hier geht nicht ... müsste doch aber if (isset($_POST['figure_brand']) && $_POST['figure_manufacturer'] == "") { $error = 9; }
Catzenjaeger hat folgende Datei angehängt:
Bearbeitet von Catzenjaeger am 17. Mai 2016 17:16:12 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Janilein |
Geschrieben am 17. Mai 2016 17:59:36
|
![]() |
Zitat Zusammengefügt am 17. Mai 2016 um 19:16:12: weis keiner von euch wie das geht? Ja nun drängel mal nicht, wenn dir jemand helfen kann und will, dann wird er das machen wenn er Zeit hat. |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 19. Mai 2016 13:08:21
|
![]() |
Ich möchte noch einmal was fragen: folgednermassen hole ich die Inhalte in das dropdown: Code Download Code //MANUFACTURER 417 das eigentliche speichern geht so: Code Download Code echo "<td width='150' class='tbl'>".$locale['figure_417'].":</td>\n"; nun möchte ich prüfen ob dieses Feld mit einen wert größer als 1 (das ist die ID für kein Inhalt) ist. Damit will ich vermeiden das jemand das feld im dropdown leer lässt und was wählen muss. Es soll also bei == 1 ein fehler kommen ... alle anderen IDs sollen durchflutschen Das mache ich so: Code Download Code // ÜBERPRÜFUNG OB MANUFACTURER ANGEGEBEN das flutscht aber durch - wisst ihr warum? Ich habe es auch anstatt == mit != und dafür vorne das ! weg ... versucht klappt auch nicht Könnt ihr helfen? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Wemi |
Geschrieben am 19. Mai 2016 17:52:41
|
![]() |
Und wenn du das ganze auf required setzt? Dann kann das Formular erst gar nicht los geschickt werden, bevor da etwas ausgefüllt wurde. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 19. Mai 2016 18:13:11
|
![]() |
ne es sollen ja nur die dropdowns gecheckt werden. kann eigentlich nur eine Kleinigkeit sein. Ich habe ja immer bei jeder Datenbanktabelle wo ich die Daten der Dropdowns ablege immer so gemacht , dass die ID 1 = "" ist also nichts drin Das Problem es wird nichts erkannt so wie es aussieht ... $inf_insertdbrow[19] = DB_FIGURE_SCALES." (figure_scale_id, figure_scale_name) VALUES (1, ''), (2, 'Unknown'), (3, '01 Inch (2,54 cm)'), ich will ja imer checken lassen ob ID gewählt wurde und wenn Ja soll fehler kommen. Aber es geht eben nicht obwohl eigentlich alles stimmen müsste |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
21Matze |
Geschrieben am 19. Mai 2016 21:20:19
|
![]() |
dein code Code Download Code $inf_insertdbrow[19] = DB_FIGURE_SCALES." (figure_scale_id, figure_scale_name) VALUES durch diesen ersetzen Code Download Code
so ist der code richtig ich habe den nicht getestet. |
Information: |
PHP Version: 8.2.x • MySQL Version: 8.0 • ![]() |
|
|
Catzenjaeger |
Geschrieben am 19. Mai 2016 21:39:05
|
![]() |
ne das ist das nicht daran leigt es nicht. Du hast mein Leertext duch test ersertzt. ich möchte ja das nichts zu sehen ist .. quasi ein leertext. Das soll dann geprüft werden ob dieser gewählt ist und dann einen fehler auswerfen damit derjenige dann etwas anderes auswählt |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Rolly8-HL |
Geschrieben am 19. Mai 2016 21:59:18
|
![]() |
Hast Du den eine Input Anweisung $_POST['figure_manufacturer_id']? Wenn Du nur die hast $_POST['figure_manufacturer'] kannst Du die nicht einfach mit _id erweitern das geht nicht. Es müssen, beide $_POST['figure_manufacturer_id'] und $_POST['figure_manufacturer'] übermittelt werden. Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein! Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten! Das gibt einem zu Denken oder? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 06:17:09
|
![]() |
danke für deine Antwort. Ich dachte die wird hier mitgeliefert: Zitat //MANUFACTURER 417 $editlistmanufacturer = ""; $resultmanufacturer = dbquery("SELECT * FROM ".DB_FIGURE_MANUFACTURERS." WHERE figure_manufacturer_parent='0' ORDER BY figure_manufacturer_name"); if (dbrows($resultmanufacturer) != 0) { while ($datamanufacturer = dbarray($resultmanufacturer)) { $editlistmanufacturer .= menu_submanufacturers($datamanufacturer['figure_manufacturer_id'], $datamanufacturer['figure_manufacturer_name'],1); } } das Formularfeld: Zitat echo "<td class='tbl'><select name='figure_manufacturer' class='textbox'>\n".$editlistmanufacturer."</select></td>\n"; --------------------------------------------- Andere Sache: ich habe jetzt was probiert und es klappte. Und zwar habe ich jeder ID 1 jetzt ...Please Choose One.. zugeordnet (heisst kein Leertext mehr) So kann ich eindeutig den Wert auslesen. Das funktioniert aber nur bedingt weil er immer nach dem ersten hängen bleibt . heisst wenn ich im Formular oben z.B "manufacturer" eintrage aber "brand " nicht wirft er die falsche fehlermeldung aus .. er wirft immer die gleiche Fehlermeldung aus. Entweder muss man alle Felder mit einem mal checken oder ich habe ws verkehrt. Momentan mache ich es so aber bleibe immer bei BRAND hängen. Egal welche Felder ausgefüllt sind oder nicht ... es ist immer zu sehen "Brand darf nicht leer sein" so habe ich es aufgebaut ... aber wie gesagt ich denke da ist der Hund begraben das müsste alles in einen Aufruf ... nur wie steuere ich dann die entsprechenden Texte zu die anzeigen sollen was vergessen wurde? Code Download Code // ÜBERPRÜFUNG OB BRAND ANGEGEBEN so geht es wohl mit mehreren Feldern aber wie steuere ich dann den Text der errormeldung? Code Download Code elseif ((isset($_POST['figure_url']) && $_POST['figure_url'] != "") || isset($_POST['figure_file'])) { |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Wemi |
Geschrieben am 20. Mai 2016 08:10:31
|
![]() |
Du hast bei Brand noch ein ! vor isset stehen. Und besser wäre folgende Überprüfung: Code Download Code if (isset($_POST['figure_brand']) && ($_POST['figure_brand'] != "... Please Choose One ...")) { Du prüfst also zuerst, ob figure_brand überhaupt übermittelt wurde und dann gleichzeitig ob dein Ausschlußkriterium nicht ausgewählt ist. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 08:21:59
|
![]() |
danke für deine Antwort. Flutscht allerdings immer noch durch und ich weiss nicht warum . Vielleicht frage ich auch an der falschen stelle im file ab. Ich hänge das komplete file nochmal an.
Catzenjaeger hat folgende Datei angehängt:
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Wemi |
Geschrieben am 20. Mai 2016 08:58:20
|
![]() |
Folgendes fällt mir schonmal auf, ob es damit zusammenhaängt kann ich nicht sagen: Zeile 76 Code Download Code $asettings['figure_submit'] Zeile 140 Code Download Code $asettings['figure_types'] Und dann musst du noch die Überprüfung aller anderen Auswahlfelder auch noch nach meinem Beispiel ändern. Und wenn jemand gar nichts auswählt, dann wird auch nichts übermittelt, da es keinen vor selektierten Eintrag gibt. Immer wenn ... Please Choose One ... kommt muss auch ein selected im HTML Tag stehen. Erst dann hast du eine Vorauswahl getroffen und es wird ein Wert übermittelt. Deine Funktionen unten für die Auswahlfelder sind etwas kompliziert, würde auch einfacher gehen. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 10:46:53
|
![]() |
$asettings['figure_submit'] ist einen Option in den Settings wo man sagen kann darf ein User eine Figur einsenden oder nicht. Das andere verstehe ich nicht so ganz: ...Please Choose ... ist doch ein Wert und zwar immer der ID 1 zugehörig. Ich will ja quasi, dass wenn jemand das ....Please Choose ... stehen lässt das dies nicht übermittelt wird sondern der Einsender dann dieses Feld auswählen muss. Es gibt noch andere Felder aber die sind keine Pflichfelder. Schau mal hier --> siehe Bild Momentan werden die aber nicht abgefangen .. ausserdem wenn ein fehler passiert ist alles weg heisst der user muss alles neu eintippen. Wenn man im Browser zurückgeht und dann entsprechend abändert kommt immer der gleiche fehler wieder. Irgend etwas passt da nicht obwohl der code funzen müsste Ich weiss nicht wie ich das anders lösen könnte. ich möchte halt nicht das schon ein Wert über ID 1 zu sehen ist da dann vielle einfach abdüsen ohne den richtigen Wert (z.B für den manufacturer) gewählt zu haben. Weil ... so würde ja immer der erste im Alphabet oben stehen. deshalb hatte ich mir gedacht, alle ID 1 mit einen NULLWERT oder halt wie jetzt ....plz choose... zu machen.
Catzenjaeger hat folgende Datei angehängt:
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Rolly8-HL |
Geschrieben am 20. Mai 2016 10:53:17
|
![]() |
Zitat $inf_insertdbrow[19] = DB_FIGURE_SCALES." (figure_scale_id, figure_scale_name) VALUES (1, ''), (2, 'Unknown'), (3, '01 Inch (2,54 cm)'), Wenn Du das immer noch so hast? dann ist dieser Teil ja Leer. Versuche das mal. Code Download Code // ÜBERPRÜFUNG OB MANUFACTURER ANGEGEBEN Hatte ein Fehler habe es jetzt geändert. Bearbeitet von Rolly8-HL am 20. Mai 2016 11:00:48 Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein! Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten! Das gibt einem zu Denken oder? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 11:19:10
|
![]() |
ok probiere ich mal. Muss aber dazu wieder alles rückändern. Generell müsste ich aber auch auf das Vorhandensein von ..Please Coose::: prüfen können ... wenn vorhanden bringe Fehler ...wenn nanderes gewählt dann durchlassen Andere Frage dazu: könnte man auch einen Hinweistext einblenden wie eben dieses ....Please Choose .... ohne das dieser gespeichert oder hinterlegt ist. Quasi so als Hinweis. Zu sehen ist das zB im Admin error Panel bei der Version 9 ... aber ich gleube das ist javascript ... das kann ich überhaupt nicht. |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Rolly8-HL |
Geschrieben am 20. Mai 2016 11:36:09
|
![]() |
Du hast Doch $error = 10; das muss doch irgend etwas bewirken wozu soll das denn sonst da sein? Habe mir so etwas mit eingebaut. Code Download Code if (empty($archive_pinn_name)) { Code Download Code echo'<div id="MWR8_pinn_popup4" class="modal_pinn_no"><div> '; Damit erhalte ich ein Popup Fenster und mit Abbrechen bleibe ich an der Stelle wo ich gerade war um diesen Fehler zu beheben, klappt bei mir wunderbar. Anleitung ist von hier: http://der-nachtfalke.net/news.php?re...readmore=8 Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein! Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten! Das gibt einem zu Denken oder? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 11:47:36
|
![]() |
hmnnn wenn ich das Popup wegklicke ist das Formular wieder leer .. was ist falsch? Ausserdem noch grvierender ... es kommt egal was ich fülle immer das gleiche Popup ... immer das mit BRAND da stimmt was nicht. Endweder müssen die irgendnwie verschachtelt werden so das alle greifen oder ich kann nur ein Popup machen was natürlich schade wäre. Bearbeitet von Catzenjaeger am 20. Mai 2016 12:35:03 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Rolly8-HL |
Geschrieben am 20. Mai 2016 12:47:54
|
![]() |
Kann sein das die Auswahl wieder leer ist, mache das nur für Input Text. Du kannst für jedes ein eigenes machen. Code Download Code
Habe ich jedenfalls so gemacht, damit Zeit er an was nicht Richtig war kein Name, kein Text und.... Oder Du suchst Dir eine andere Technik. Code Download Code redirect(FUSION_SELF.$aidlink."&status=update_ok"); Bearbeitet von Rolly8-HL am 20. Mai 2016 12:53:46 Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein! Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten! Das gibt einem zu Denken oder? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 20. Mai 2016 12:59:22
|
![]() |
ich habe das für jedes gemacht aber er zeigt immer das erste nur an egal ob ich das selectiert habe oder nicht. Mit nur einen funzt das einwandfrei was mache ich falsch? Hier die Popups: Zitat echo '<div id="popup_brand" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Brand cannot be left empty.</p> </div> </div>'; echo '<div id="popup_manufacturer" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Manufacturer cannot be left empty.</p> </div> </div>'; echo '<div id="popup_scale" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Scale cannot be left empty.</p> </div> </div>'; echo '<div id="popup_material" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Material cannot be left empty.</p> </div> </div>'; echo '<div id="popup_poa" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Points of Articulation cannot be left empty.</p> </div> </div>'; echo '<div id="popup_packaging" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Packaging cannot be left empty.</p> </div> </div>'; echo '<div id="popup_limitation" class="modalDialog"> <div> <a href="#close" title="Close" class="close">X</a> <h2>ATTENTION</h2> <p>Limitation cannot be left empty.</p> </div> </div>'; hier die Checks Zitat // ÜBERPRÜFUNG OB BRAND ANGEGEBEN if (isset($_POST['figure_brand']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_brand"); } // ÜBERPRÜFUNG OB MANUFACTURER ANGEGEBEN if (isset($_POST['figure_manufacturer']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_manufacturer"); } // ÜBERPRÜFUNG OB SCALE ANGEGEBEN if (isset($_POST['figure_scale']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_scale"); } // ÜBERPRÜFUNG OB MATERIAL ANGEGEBEN if (isset($_POST['figure_material']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_material"); } // ÜBERPRÜFUNG OB POA ANGEGEBEN if (isset($_POST['figure_poa']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_poa"); } // ÜBERPRÜFUNG OB PACKAGING ANGEGEBEN if (isset($_POST['figure_packaging']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_packaging"); } // ÜBERPRÜFUNG OB LIMITATION ANGEGEBEN if (isset($_POST['figure_limitation']) == "... Please Choose One ...") { redirect(FUSION_SELF."#popup_limitation"); } es wird aber nur immer das BRAND angezeigt auch wenn ich das gewählt habe. momentan habe ich es mit nur einen gemacht wo quasi ein Hinweis steht 8siehe Bild) aber so wollte ich das eigentlichnicht Ich hänge die Datei noch einmal komplett an. Sorry da ist viel auskommentiert :)
Catzenjaeger hat folgende Datei angehängt:
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Rolly8-HL |
Geschrieben am 20. Mai 2016 13:32:44
|
![]() |
Wie soll das ohne } else { weiter gehen? Ist doch nichts da was er machen soll das NICHT == "... Please Choose One ..." ist? Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein! Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten! Das gibt einem zu Denken oder? |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
Springe ins Forum: |