Bonjour,
J'ai un formulaire avec plusieurs champs dont le champ "année", lequel formulaire est validé par un bouton 'submit' qui envoie une requête ajax à une API et qui met à jour les champs d'une base de données.
Dans la base de donnée, ce champ est de type "smallint" et ne peut pas changer (à cause des contraintes de vérification notamment). Le champ peut être nul. Côté API, le paramètre "année" de la requête SQL est un $stmt->bindParam('annee', $this->annee, PDO::PARAM_STR);.
Côté front, j'ai un souci pour mettre à jour ce champ "année". Quand ce champ est déjà une valeur nulle, pas de problème avec la nouvelle valeur (ici 1987).
La requête vers l'API devient alors :
Le problème survient dans le process inverse. Admettons que j'ai rentré une valeur dans la base de données et que je souhaite supprimer cette valeur via le formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part https://monapi.fr/api/update.php?id=123456789&annee=1987
La requête vers l'API devient donc :
ce qui renvoie inévitablement une erreur 500.
Code : Sélectionner tout - Visualiser dans une fenêtre à part https://monapi.fr/api/update.php?id=123456789&annee=
Ci-dessous, ma requête ajax vers l'API. J'ai pensé à mettre un coalesce sur annee mais cela ne fonctionne pas (en rouge).
En gros, il s'agit de gruger pour que quand "annee" n'est plus renseignée, l'appel à l'API ne bloque pas. Et là c'est moi qui bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $.ajax({ url:"https://monapi.fr/update.php?', type:"GET", data:{ "id":$("#id_c").val(), "reference":$("#field_ref").val(), "annee": $("#field_annee").val() "annee" : $("#field_annee").val() ?? $("#field_annee").val() }, success:function(data){ console.log('maj ok' + data); M.toast({html: 'Données de la carte mises à jour !', displayLength: 5000, classes: 'toast_success'}); }) }
Merci pour vos retours,
Bonne journée,
Sylvain
Partager