11548 sujets

JavaScript, DOM et API Web HTML5

Hello,

Je suis confronté à un problème étrange : j'utilise un petit bout de code javascript tout simple qui permet de demander la confirmation de suppression d'un élément lors du clic sur le bouton Supprimer.
Le code marche très bien sur ma machine de développement (Linux/Apache).
Il marche aussi très bien sur un des serveurs dont je me sert régulièrement (Windows/IIS)

Par contre, il refuse de marcher sur un autre serveur d'hébergement qui tourne lui sur Linux/Apache

Ma question est donc la suivante : existe-t-il une fonction à activer sur le serveur pour permettre à mon bout de code javascript d'être exécuté ?
Modifié par EcliptuX (15 Nov 2006 - 20:45)
Salut,

A priori non. La seule chose que je vois est un proxy applicatif qui pourrait enlever le code Javascript. As-tu vérifié que ton bout de code est bien dans le source ?
Je viens de vérifier, et il est bien présent.
Ca semble vraiment être un problème côté serveur car il survient avec :
- Firefox 2
- IE6
- IE7

Y a un truc qui m'échappe Smiley ohwell
Bonjour !

a écrit :

Le code marche très bien sur ma machine de développement (Linux/Apache).

......
a écrit :

Par contre, il refuse de marcher sur un autre serveur d'hébergement qui tourne lui sur Linux/Apache


Si c'est le meme code sur 2 serveur différents , il y a peu-etre un problème de
droit d'accès au fichier sur le second !??

As-tu vérifié les droits et tenté un "chmod 775 /chemin/du/fichier !!
OU bien encore ton fichier httpd.conf !?

Y a t'il un message d'erreur venant du 2ème serveur !?

++
En fait il n'y a pas vraiment de "fichier" de code.
Dans ma page php, voici le fameux code qui refuse de marcher (ça n'est qu'un exemple : le pb survient sur tout code javascript):
          <a href="modsup_actu.php?sup=<?php echo $id ?>" onclick="javascript:if(!confirm('Etes-vous sûr de vouloir supprimer cette news ?')) return false;">
            <img src="images/supprimer.png" width="16" height="16" alt="Supprimer" title="Supprimer" />
          </a>


Code tout bête donc...

Tu me parle de fichier httpd.conf : que dois-je vérifier dedans ?

Sinon j'ai épluché les logs Apache du serveur : rien signaler... Smiley ohwell
Modifié par EcliptuX (15 Nov 2006 - 19:31)
Le problème doit venir de la syntaxe que tu as utilisée dans onclick. Le préfixe javascript: ne doit pas être mis dans ce cas-là. Il faut donc écrire :
onclick="if(!confirm('Etes-vous sûr de vouloir supprimer cette news ?')) return false;"
ou plus simplement :
onclick="return confirm('Etes-vous sûr de vouloir supprimer cette news ?');"
et même, si tu es galant Smiley cligne :
onclick="return confirm('Etes-vous sûr(e) de vouloir supprimer cette news ?');"
Ceci dit, je ne vois pas le rapport avec le serveur utilisé...
Modifié par Eldebaran (15 Nov 2006 - 19:38)
Merci pour le conseil Eldebaran Smiley cligne
J'ai modifié le code mais le résultat est le même : en local ça marche, sur le serveur non.

Je vais essayer d'être plus précis, car je me rends compte que j'ai mis le pb sur le dos du javascript alors que concrètement, voilà comment cela se passe en local ou sur le serveur IIS :
1 - je clique sur le bouton supprimer
2 - le message "Etes vous sûr de vouloir supprimer la news ?" apparaît
3 - je clique sur "OK"
4 - le navigateur se met à mouliner (transfert de données vers le site etc...)
5 - la page se rafraîchit et la news a disparue

Maintenant, sur le serveur Apache qui pose pb, il se passe ceci :
1 - je clique sur le bouton supprimer
2 - le message "Etes vous sûr de vouloir supprimer la news ?" apparaît
3 - je clique sur "OK"
4 - le navigateur se met à mouliner (transfert de données vers le site etc...)
5 - la page ne se rafraîchit pas et la news est tjrs là

La Console d'erreur de Firefox reste désespérément muette....
Modifié par EcliptuX (15 Nov 2006 - 19:55)
Qu'est-ce que tu veux dire par "la page ne se rafraîchit pas" ? D'après ta description, on dirait que le problème vient de la page modsup_actu.php (et dans ce cas-là, c'est dans le code PHP qu'il faut creuser).
Bien vu !
Effectivement le problème venait du code PHP.
Mon code ne s'exécutait correctement que si la variable php register_globals était sur "on", ce qui n'est pas le cas sur le nouveau serveur.

Du coup, peut-être vaudrait-il mieux déplacer ce topic Smiley confused

Merci en tout cas pour votre aide Smiley ravi
EcliptuX a écrit :
En fait il n'y a pas vraiment de "fichier" de code.
Dans ma page php, voici le fameux code qui refuse de marcher (ça n'est qu'un exemple : le pb survient sur tout code javascript):
          <a href="modsup_actu.php?sup=<?php echo $id ?>" onclick="javascript:if(!confirm('Etes-vous sûr de vouloir supprimer cette news ?')) return false;">
            <img src="images/supprimer.png" width="16" height="16" alt="Supprimer" title="Supprimer" />
          </a>

Est-ce que le lien modsup_actu.php?sup=1234 supprime comme ça direct un élément ?

Si c'est le cas c'est extrêmement dangereux de faire la confirmation en javascript. Car cela voudrait dire qu'il existe une URL pour supprimer un élément (donc via GET), ce qui est une violation du protocole HTTP. En cas d'effets de bord comme celui-là (suppression), la requête doit se faire en POST obligatoirement. Les utilisateurs ne disposant pas de Javascript devraient aussi recevoir une confirmation (sous forme d'une nouvelle page par exemple).

Un jours y'a Google qu'avait sorti un accélérateur machin, qui mettait en cache tous les liens d'une page. Et un jour sur un site, les articles ont mystérieusement disparus... Ils avaient fait comme toi (si j'me trompe pas bien-sûr), et GoogleAccelerator avait visité le lien. Et causé la suppression de l'élément Smiley decu

Donc toujours faire gaffe avec ce genre de choses... Maintenant faut voir en détail ton application, peut-être que je me trompe Smiley cligne
FlorentG a écrit :
Un jours y'a Google qu'avait sorti un accélérateur machin, qui mettait en cache tous les liens d'une page. Et un jour sur un site, les articles ont mystérieusement disparus... Ils avaient fait comme toi (si j'me trompe pas bien-sûr), et GoogleAccelerator avait visité le lien.
Mouarf. Smiley lol

Je retiens cet exemple, il est très bon.