GX-Bug #61948
geschlossenBeim Ändern einer Adresse kann es zu einer Fehlermeldung kommen, wenn das JavaScript für die Bundeslandauswahl noch nicht geladen ist.
100%
Performance des JavaScripts im Adressbuch verbessert
Beschreibung
Beim Ändern einer Adresse kann es zu einer Fehlermeldung kommen, wenn das JavaScript für die Bundeslandauswahl noch nicht geladen ist.
System:
- xampp Testsystem unter Windows 7
- PHP 7.0
Reproduzierbar: bei schnellen Klicken ja
Aktionen:
Aufruf zum Ändern einer bestehenden Adresse aus dem Adressbuch oder innerhalb eines Auftrages, URL z.B.: address_book_process.php?edit=1
Wechsel des Landes von einem Land ohne Bundesstaat (z.B. Portugal) auf ein Land mit Bundesstaat (z.B. Vereinigte Staaten von Amerika)
Noch bevor die JavaScript-Aktion das Feld "Bundesland" mit einen Defaultwert füllen kann, wird der "Speichern"-Button ausgelöst.
Browser-Meldung: "Diese Seite funktioniert nicht vinobucks.de kann diese Anfrage momentan nicht verarbeiten.
HTTP ERROR 500"-
PHP Log:
PHP Fatal error: Uncaught InvalidArgumentException: IntType: Invalid argument value given (expected numeric int got NULL): in \GXEngine\Shared\Types\IntType.inc.php:45 Stack trace: #0 \GXEngine\Shared\Types\IdType.inc.php(47): IntType->__construct(NULL) #1 \system\classes\accounts\AddressBookProcessContentControl.inc.php(321): IdType->__construct(NULL) #2 \system\classes\accounts\AddressBookProcessContentControl.inc.php(212): AddressBookProcessContentControl->get_address_data_from_user_input() #3 \system\overloads\AddressBookProcessContentControl\DSGVOAddressBookProcessContentControl.inc.php(23): AddressBookProcessContentControl->process_update() #4 \system\classes\accounts\AddressBookProcessContentControl.inc.php(204): DSGVOAddressBookProcessContentControl->process_update() #5 \GXEngine\Shared\Types\IntType.inc.php on line 45
EDIT 24.04.2019
- Aktiviere unter Kunden > Kunden-Details "Bundesland"
- Lege einen Kunden im Shop an, Land egal, Bundesland egal
- Navigiere als Kunde zum Adressbuch
- Klicke bei Standardadresse auf "Bearbeiten"
- Beobachte: der Default-Eintag im Formularfeld Bundesland erscheint erst nach einem kurzen Moment (<0,5s)
- Merke Dir, wo auf dem Bildschirm der Speichern-Button ist, klicke auf Zurück
- Klicke wieder auf Bearbeiten und sofort auf Speichern, bevor das Bundesland-Feld ausgefüllt wird, viel Spaß!
- erwartetes Ergebnis: Adresse wird gespeichert
- tatsächliches Ergebnis: FATAL ERROR, siehe Screenshot
Dateien