dedlfix: jQuery Formular abschicken & wieder einbleden

Beitrag lesen

Tach!

ich muss gezwungenermaßen mit jQuery beschäftigen, da manche Features immer beliebter werden wie z.B. ein Formular abzuschicken ohne die Seite komplett neu zu laden.

Das geht auch ohne jQuery, aber mit ist es bequemer. Vor allem zu der Zeit, als noch einige Browser ihre eigene Meinung hatte, wie das XHR zu instantiieren sei. Auch ist es bequemer, statt zu Fuß die Statuscodes-Zahlen auszuwerten, sprechenden Bezeichnern (success, error, complete) die Handler-Funktonen zuzuweisen.

Ich persönlich finde dieses zwar totaler qatsch aber ok.

Man kann auch ohne AngularJS Single-Page-Applications erstellen, aber genauso gut kann man mit telnet im Web surfen.


>       data: "ctrl_20=" + $("#ctrl_20").val() + "&ctrl_21=" + $("#ctrl_21").val() + "&ctrl_22=" + $("#ctrl_22").val() + "&ctrl_23=" + $("#ctrl_23").val() + "&ctrl_25=" + $("#ctrl_25").val(),

So nicht! Wenn der Nutzer ein & eingibt, sind deine Daten kaputt. Mit und ohne jQuery. Dabei macht es dir jQuery doch so einfach, du musst es nur seine vorhandene Funktionalität nutzen. Erstell dir ein Objekt und übergib das dem data.

data: {
  ctrl_20: $("#ctrl_20").val(),
  ctrl_21: $("#ctrl_21").val(),
  ctrl_22: $("#ctrl_22").val(),
  ctrl_23: $("#ctrl_23").val(),
  ctrl_25: $("#ctrl_25").val()
},
  1. Reicht diese Prüfung oder benötige ich noch weitere Prüfungen mit PHP?

Man kann einen Server immer auch zu Fuß kontaktieren und beliebige Daten hinschicken. Eine clientseitige Prüfung allein ist nicht ausreichend, weil diese umgangen werden kann.

Nutze ich auch an anderen Stellen. Nur die Frage, wie bekommt mein jQuery davon etwas mit ich benötige ja eine weitere Ausgabe, dass der User weiß, dass hier etwas nicht stimmt?

Indem du ihm das antwortest. Dazu solltest du dir eine Datenstruktur ausdenken, mit der du am Client die Daten den entsprechenden Eingabefeldern oder was auch immer zuordnen kannst.

Am besten erstellst du dazu ein (assoziatives) Array und packst das mit json_encode() ein. Dem jQuery.ajax auf der anderen Seite sagst du mittels dataType-Option, dass du JSON zurückschickst. Du bekommst dann ein fertig ausgepacktes Objekt, das du ohne weitere Schritte verwenden kannst.

  1. Nach dem abschicken blende ich mein Formular aus, setzte den Button auf disabled und leere mit $('#ctrl_20').val(''); meine Felder. Ist es benutzerfreundlich das Formular komplett auszublenden oder lieber stehen lassen?

Frag das deine Benutzer für diesen Fall. Am besten ist, wenn du dir selbst immer wieder die Frage stellst, ob du das als einfacher Anwender gut zu bedienen findest.

  1. Wäre es möglich mein Formular, welches ich mit $("#form_index").addClass( "ausblenden"); ausgeblendet habe nach sagen wir mal 5 Sekunden wieder einzublenden? Und dafür die $("#response").html(msg); auszublenden?

Natürlich, es gibt setTimeout().

dedlfix.