GX-Bug #61948
Von Ulrich Wenk vor mehr als 5 Jahren aktualisiert
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 meinedomain.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 1. Aktiviere unter Kunden > Kunden-Details "Bundesland" 2. Lege einen Kunden im Shop an, Land egal, Bundesland egal 3. Navigiere als Kunde zum Adressbuch 4. Klicke bei Standardadresse auf "Bearbeiten" 5. Beobachte: der Default-Eintag im Formularfeld Bundesland erscheint erst nach einem kurzen Moment (<0,5s) 6. Merke Dir, wo auf dem Bildschirm der Speichern-Button ist, klicke auf Zurück 7. 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