Rolf B: Jquery Confirm aus PHP starten?

Beitrag lesen

Hallo Gregor,

aber mein Einsatzweck wäre nun, aus php heraus einen Dialog einzublenden.

Bedeutet: Dein PHP Code stellt fest, dass deinE AnwenderIn etwas gepostet hat, dass besser bestätigt werden sollte.

Fall A: Du kannst den Bestätigungsbedarf schon vor dem Submit erkennen.

Dann tu das auch. Dinge, die bestätigt werden wollen, gehören in einen POST Request, und beim zugehörigen Form kannst Du submit abfangen und schauen ob

  • eine Bestätigung not tut
  • die Bestätigung noch nicht eingeholt wurde.

Wenn ja, den Submit abwürgen (event.preventDefault()), den Submit-Button verstecken (weil $.confirm dem Anschein nach kein <dialog> Element verwendet und deshalb keinen echten modalen Dialog erzeugt) und das $.confirm aktivieren. Dessen OK Handler setzt

  • in einem hidden-field des Forms ein Bestätigungskennzeichen
  • simuliert click auf dem Submit-Button Der Cancel-Handler
  • blendet den Submit-Button wieder ein

Fallback für inaktives JS: PHP merkt, dass die Bestätigung fehlt (deswegen das hidden field) und präsentiert eine separate Confirm-Seite.

Fall B: Du merkst tatsächlich erst im PHP, dass die Bestätigung nötig ist

Dann gib das Formular neu aus und blende ins Form einen "Bitte bestätigen" Block ein, der auch ohne JavaScript funktioniert. Generiere einen JavaScript-Fetzen, der die "Bitte Bestätigen" Funktion aufruft. Diese Funktion schmeißt als erstes den von PHP generierten Bestätigungsblock raus und steuert dann den Rest mit $.confirm.

Diese zweigleisige Vorgehensweise ist wichtig. JavaScript läuft nicht immer. Entweder weil der Kunde es abgedreht hat, weil er in einem Funkloch sitzt und das JS verloren ging, oder weil Du einen blöden Typo drin hast.

Rolf

--
sumpsi - posui - obstruxi