-1
votes

Comment passer le nom ou l'ID d'un bouton pour le nœud à l'aide d'une récupération

J'ai une table remplie d'éléments de base de données et je voudrais avoir un bouton dans chaque ligne qui supprime cet élément de la base de données. Mon Apraach était de donner le même identifiant / nom comme des données spécifiques qu'elle supprimerait mais je ne sais pas comment transmettre cet identifiant vers le noeud afin qu'il sache quel élément exact à supprimer. J'utilise l'extraction de JS pour faire le message avec ce bouton.

J'utilise le nœud avec Express et j'utilise EJS comme solution de modèles. Ma base de données est mongodb avec mangouste. P>

Ceci est le bouton, il est généré pour chaque élément de la base de données et il a le même identifiant que l'élément de la base de données. P>

app.post('/delete', (req,res)=>{
    console.log("Deleted button has been clicked")
})


0 commentaires

3 Réponses :


1
votes

Vous pouvez utiliser onclick et transmettre votre valeur sous forme d'argument: xxx pré>

} p>

et sur le côté serveur: p>

app.post('/delete', (req,res)=>{
console.log("Deleted button has been clicked: "+ req.body.buttonId)
})


5 commentaires

Merci de votre réponse, mais pour une raison quelconque, cela reviendra de retour indéfini. Même si je supprime le repos du code et laissez simplement l'auditeur avec le rappel à la journalisation de la présente.Id.


Oui j'ai réalisé, c'est pourquoi j'ai édité le code. J'ai utilisé maintenant onclick qui fonctionne


Oui, maintenant ça marche. Merci. Une autre solution que j'ai trouvée était simplement de mettre une forme autour du bouton et de y arriver via Req.body, de cette façon que la valeur et le nom sont transmis sans problèmes, alors simplement que la valeur est l'ID.


@Esszed qu'en est-il de ma réponse? As-tu essayé? Au fait, il s'agit d'une convention de repos à utiliser la méthode de suppression lorsqu'une opération de suppression est effectuée. Également dans votre API DELETE, il n'est pas bon d'avoir supprimer l'URL de route, si la méthode de suppression est utilisée, il est déjà clair qu'il s'agit d'une opération de suppression.


@Suleymansah je n'ai pas essayé. Je ne voulais pas utiliser JQuery parce que jusqu'à présent, je l'utiliserais juste pour cette opération dans toute ma application. Merci à propos des informations de suppression, cependant. Je vais certainement l'utiliser de cette façon.



1
votes

Vous devez ajouter l'ID à l'URL DELETE dans le code JavaScript comme ceci: (J'ai également changé la méthode post sur Supprimer car il est bon de suivre les conventions de repos) xxx pré>

et pour obtenir une pièce d'identité au côté de l'API, vous pouvez utiliser REQ.PARAMS.ID P>

app.delete('/delete/:id', (req,res)=>{
    console.log(req.params.id);
    console.log("Deleted button has been clicked")
})


6 commentaires

Ça ne marche pas. Plus probablement à nouveau en raison de cela.id revenir indéfini.


@Esszed pouvez-vous remplacer cela.Id avec event.srelement.id?


Sinon, vous pouvez utiliser l'événement en ligne comme dans l'autre réponse


Cela fonctionne, un peu fonctionne. Il supprimait des trucs de la base de données, mais mon itinéraire de redirection à la maison ne fonctionne pas pour une raison quelconque. Donc les choses supprimées disparaissent après la recharge de la page


Peut-être devriez-vous mieux de poser une nouvelle question sur cette question


Eh bien, je vais rester à ma solution de travail en ce moment et peut-être que je reviendrai.



0
votes

dans le fichier EJS: Cela va à l'intérieur de la boucle de Foreach xxx

(vous devez installer la bibliothèque de méthode-Remplacement de la méthode: la méthode d'installation de NPM-PRODUCTION - SAVE)

Voici le côté serveur: xxx


0 commentaires