Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Je suis en train de réaliser un petit module permettant à un utilisateur de rajouter des fichiers sur le serveur.
Dans le but de permettre à l'utilisateur de remplacer un fichier (mise à jour, ...), j'aimerais que lors du "submit" du formulaire, on lui demande s'il est sur de valider le remplacement du fichier existant.
J'ai commencé à faire un bout de code en Ajax avec le paramètre "onSubmit" du formulaire.
Seulement le status code renvoyé par l'objet XMLHttpRequest est toujours 200 (or je le positionne bien à 404 dans mon controller d'erreur).
Auriez-vous une idée pour facilement demander à l'utilisateur de valider ces remplacements ?
Merci d'avance
Dernière modification par KeKeMaN (25-01-2010 13:33:20)
Hors ligne
Je pense que tu devrais simplement revoir ton processus afin que l'internaute soit notifié avant l'upload avec une message par exemple au dessus du champ d'upload "<p id="alertupload">/!\ Si vous uplodez un nouveau fichier, le précédent sera écrasé</p>" et après à la limite tu fais un test en js.
// jquery style if($('#alertupload').length>0) { return confirm('Etes vous sur de vouloir ...?'); }
Hors ligne
Merci pour votre réponse ...
Cependant dans ce cas, je ne teste pas si le fichier existe pour afficher ce message ... Sinon autant juste informer l'utilisateur qu'il est susceptible d'écraser un fichier existant mais de ne rien tester ...
Je pensais revoir le controller d'erreurs pour qu'il renvoit bien des codes status 404 quand la page n'existe pas par exemple ; par contre je ne vois pas trop comment faire
Merci
Hors ligne
oHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); oHttp.open("HEAD", "/test.html", false); oHttp.send(); alert('status' + oHttp.status); return (oHttp.status==404) ? true : false;
Voici le code exécuté lors du submit du formulaire .. le problème, c'est que ca me renvoit toujours false car le code status est toujours à 200 .. D'où mon 404 !
Hors ligne
Oui, je suis d'accord que le test est plus simple côté serveur via PHP, mais je ne vois pas comment afficher un message de confirmation à l'utilisateur (j'ai encore du mal à comprendre l'intégration d'Ajax dans Zend).
Par exemple pour ton code, où puis-je placer le "confirm(....)" ?
Hors ligne
Pourquoi ne pas mettre une checkbox en dessous du champs "file" avec un message du genre : "En cochant cette case, je confirme que l'envoie du nouveau fichier écrasera l'ancien".
Ce champ ne se mettrait que quand un fichier est présent.
De cette manière, tu as le nouveau fichier ainsi que la confirmation.
Hors ligne
Et tu peux pas faire une page php qui traite ton cas de figure i.e. l'existence ou non du fichier. Page que tu appelles via Ajax et en fonction du resultat OK/KO affiche ton message demandant l'écrasement du fichier.
J'ai pas compris l'interet d'une page html qui te diras toujours OK ^^
Hors ligne
Et si la personne n'a pas activée JavaScript, il n'aura pas le droit à son avertissement et restera dans son ignorance ?
(merci de ne pas répondre "tout le monde active javascript de nos jours", ce poste n'a pas le but de créer un débat sur ce thème)
Hors ligne
Ou est le soucis ?
Si JS activé
suppression checkbox forcant la suppression du fichier en cas de doublon
appel AJAX avec confirm box
sinon
Y a ta fameuse checkbox ^^
Hors ligne
Bon, j'ai finalement opté pour la solution en Ajax (fonction appelant une page PHP qui test l'existence du nom du fichier passé en paramètre et qui renvoit 'OK' ou 'NOK') lors de la validation du formulaire (onSubmit).
Merci à tous !
Hors ligne
Pages: 1