[RESOLU] probleme de suppression utilisateur en php et js

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2016, 13:42

yop,

au début, switch ('action') c'est pas plutôt switch ($action) ?
parce que la tu as toujours le default (c'est p'tet fait expert ?)

J'espère qu'en vrai ton code est indenté ? :)

il faut que tu sépare ton code, ton switch c'est bien (un contrôleur de mvc c'est nickel) par contre le code doit être dans des fonctions que tu appels pour chaque cas ou alors dans des fichiers et tu fais l'inclusion du fichier dans chaque cas mais pas comme c'est pas super lisible (tu verras tu t'y retrouves mieux quand c'est découpé, c'est lisible etc.).
ça me fait penser à ça ;)

pour le reste il se passe quoi ?
tu as regardé dans la console développer si tu as une erreur ?
le html généré il contient quoi ?
Situ utilise directement la fonction js confirme(42); dans la console developpeur il se passe quoi ? (console développeur / outils développement etc. perso j'utilise chrome depuis longtemps, je ne sais pas si les autres sont aussi 'bien').

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

05 sept. 2016, 16:48

pour la partie action je l'ai modifié car c'était un oublie quand j'ai modifié tout if par mon switch.
j'ai fait ce que tu m'as dit pour découper mon code avec des fonctions. au départ je voulais faire le moins de fichier possible mais en final c'est vrais ça fait mal aux nyeux ;)
pas mal keep it simple stupid. j'ai beaucoup ri et c'est bien vrai ce truc sur la nomination des variables :)
en revanche depuis mon switch les case action ne fonctionne pas. mais je me penche là dessus.
alors pour le reste dans le débug il n'y a pas d'erreur ( ce qui je pense n'est pas normal puisque ça ne fonctionne pas ).
sur la partie de l'utilisateur 42 le js popai bien (avant que mette mon switch)
et quand je le désactive pour remettre ma boucle while c'est là que ça ne foncionne pas et sans message d'erreur
à croire qu'il n'aime pas les boucles while.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2016, 16:55

si tu peux utiliser la fonction dans la console, c'est que le problème vient du html.
On peux voir ? (ce n'est pas une proposition indécente ;) )


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

05 sept. 2016, 17:10


Eléphant du PHP | 63 Messages

05 sept. 2016, 17:11

mdr ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 sept. 2016, 13:14

ton code est foireux :)
=> <a href="" onclick="return confirme(" 42")"=""><img src="./images/supprimer.gif"></a>
les " dans le JS fond que le html déconne et du coup le onclick contient
onclick="return confirme(" ce qui ne convient pas trop à ce que tu souhaites.

du coup il faut que tu remplaces les " par des ' dans le code JS.

désolé je dois avoir de la boue dans les mirettes ;)

code corrigé => https://gist.github.com/tipounet/381ccd ... 14e068272e

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 63 Messages

06 sept. 2016, 14:00

salut
merci de te pencher sur ce problème.
je vais tester et te fais un retour.

Eléphant du PHP | 63 Messages

06 sept. 2016, 14:44

ok c'est nickel moogli. ça pop bien et ça supprime aussi.
je te remercie encore. peux tu m'expliquer les anti slash?
en revanche j'ai un problème dans mon switch($action) case asc et desc... mon tableau ne se change ni en ordre croissant ni en décroissant...
tu as une idée? (oui encore)

Eléphant du PHP | 63 Messages

06 sept. 2016, 16:02

ok mon problème de switch est résolu car dans mes lien croissant et décroissant j'avais orderby au lieu d'action je suis vraiment fatigué moi mdr.
bon je met tout ça en résolu.
mais si tu peux m'expliquer l'histoire des \ par mp ce serai cool.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 sept. 2016, 17:18

le \ c'est un truc qui fonctionne dans beaucoup de langage.
Le principe est simple : lorsque tu délimites quelque chose avec un caractères il ne peux pas être contenu
en clair "toto" ne peux pas contenir de " sinon ça fait "to"tot" .
dans ce cas php va te râler au nez en te filant une parse error
la solution c'est le \ pour indiquer que l'on souhaite utiliser le caractère mais pas comme délimiteur => "to\"to" (to"to).
le principe est le même pour les simples quote.

pour aller plus loin, en SQL la délimitation des chaînes de caractères c'est avec des '
Pour l'utiliser dans une chaîne de caractère tu n'utilises de \ mais tu doubles, du coup la chaîne : 'c'est top' devient 'c''est top'

Dans le cas de ton code tu utilises des ' pour délimiter les chaînes de caractères php or on a besoin des ' dans la chaîne qui crée du JS (vue que les ' sont aussi les délimiteurs de chaines de caractères en JS). du coup j'ai mis un \' pour indiquer a php que ce n'est pas la fin de chaîne.

La où c'est fort c'est que la chose n'est qu'informative pour le compilateur du coup tu la vois pas dans le code généré : php l'enlève tous seul ;)

voilà j'espère que c'est clair ;)

@+
Il en faut peu pour être heureux ......