Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Voila j'essaye d'utiliser du Javascript sur mon site et je voudrai avoir de l'aide.
J'ai dans ma partie admin la possibilité de creer des utilisateurs et je voudrai par exemple a la fin de l'insertion en base de tous mes attributs envoyer un petit message comme quoi c'a s'est bien passé.
echo"<script type=\"text/javascript\">" ; echo "alert('Utilisateur ajouté !');"; echo"</script>";
Ceci ne marche pas et je comprend pas pourquoi...
je l'ai placé juste apres l'insertion :
$utilisateur->insert($data);
avez vous des idées ?
Hors ligne
Hum, je viens de tester tel quel le code que tu as donné et le message s'exécute bien (IE7 et FF2) donc le code est valide
As-tu bien activé le JS de ton navig ?
Ce code js est-il bien présent dans le code de la page générée ? etk je pencherais pas pour un pb du coté du ZF
Dernière modification par or4cle (31-03-2008 11:39:43)
Hors ligne
tu la tester dans une vue ou sur un controlleur ?
Hors ligne
les 2 mon général
si ce code est bien présent dans le code source html de la page générée, il devrait fonctionner chez toi.
tu as testé un page html tout bête pr vérifier que çà s'exécute bien si tu es pas sûr que le JS soit activé ?
Hors ligne
je l'ai testé direct dans une vue et en effet il marche mais quand je le met a la fin de l'insertion dans mon controller c'a n'affiche rien
voici mon code au cas ou :
function supprimerAction() { $utilisateur = new Utilisateur(); $id = (int)$this->_request->getParam('id'); if ( $id > 0) { $where = 'iduser = ' . $id; $delete = $utilisateur->delete($where); echo"<script type=\"text/javascript\">" ; echo "alert('Utilisateur supprime !');"; echo"</script>"; } $this->_redirect('admin/utilisateur'); }
je ne comprend pas
Hors ligne
ah mais tu fais un redirect ensuite donc ton code est zapé.
rien de ce que tu fais avant le redirect n'est envoyé au navigateur.
C'est la page "admin/utilisateur" qui est affiché
Hors ligne
Comment je pourrais faire alors pour garder quand meme la redirection mais indiquer que l'action a bien ete effectuer?
Vous pensez que je peut faire un windows.location.href ?
Hors ligne
Pas besoin de javascript.
http://en.wikipedia.org/wiki/Meta_refresh
Hors ligne
et oui mais si je fais ca dans une vue spécifique je devrai avoir 2 vue par action
par exemple : utilisateur crée / probleme dans la creation de l'utilisateur
article posté / probleme dans le postage de l'article
etc....
Bon en fin de compte j'ai utiliser location.href=""
Voila merci tout de meme
Dernière modification par larenzu (31-03-2008 15:07:40)
Hors ligne
2 vue par action ??
Une vue par action, OK (pour affiché le formulaire)
Les messages d'erreur s'affiche sur la meme vue que le formulaire
Eventuellement, une vue générique (message.phtml) avec un echo $this->message; et un meta refresh.
C'est bizarre ton javascript
Hors ligne
Ce que tu peux faire, "mais bon", je trouve pas cela vraiment "clean". :p
C'est utiliser une "confirm" en JavaScript et une fois que le client à pressé "OK", alors il est dirigée vers l'action que tu auras définit ! En l'occurrence ce sera une redirection en JS, vers ta page "$this->_redirect('admin/utilisateur');".
if (confirm("ok")==true) { window.location.href = 'ta page'; }
voila, voilou !
Hors ligne