Déclencher un input file par une commande Javascript
Résolu
janmar
Messages postés
148
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir,
J'ai trouvé un truc sur un forum qui me plaît bien, mais que je n'arrive pas à maîtriser. Je cherche à déclencher un input file par le clic sur une image. J'ai deux comportements que je n'explique pas :
1°) la commande Java Script se comporte comme un bouton submit.
2°) le fichier sélectionné n'est pas envoyé.
Voici mon code :
HTML :
HTML
Le click sur l'image de fond de l'input type="image" déclenche bien l'input file d'id InputFileM et de nom "monfichier".
En cliquant sur le fichier choisi, cela équivaut à un submit et redirige sur modifs.php ???????? et le fichier n'est pas envoyé.
modifs.php
J'obtiens toujours : pas de fichier.
Quelqu'un peut-il m'aider ? merci d'avance.
EDIT : Ajout du langage dans les balises de code.
J'ai trouvé un truc sur un forum qui me plaît bien, mais que je n'arrive pas à maîtriser. Je cherche à déclencher un input file par le clic sur une image. J'ai deux comportements que je n'explique pas :
1°) la commande Java Script se comporte comme un bouton submit.
2°) le fichier sélectionné n'est pas envoyé.
Voici mon code :
HTML :
<head> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> </head>
HTML
<form method = "post" action = "modifs.php" enctype="multipart/form-data"> <input type="image" src ="<?php echo $chemin;?>" name ="Mr" alt ="Mr." style="vertical-align: middle;border:solid 1px silver;border-radius:10px; width:60px;height:60px;background-color:#CCC;" onclick="$('#InputFileM').click();"/> <input type="file" id="InputFileM" name = "monfichier" style="visibility:hidden"/> <label for="prenom">Prénom : </label><input class ="champs" type="text" name="prenom" style="background-color:#00FFFF;" value = "<?php echo $donnees['Prenom'];?>" /><br> <label for="nom">Nom : </label><input class ="champs" type="text" name="nom" style="background-color:#00FFFF;" value = "<?php echo $donnees['Nom'];?>" /><br> <INPUT class ="champs" type="submit" value="Valider vos modifications" /><?php
Le click sur l'image de fond de l'input type="image" déclenche bien l'input file d'id InputFileM et de nom "monfichier".
En cliquant sur le fichier choisi, cela équivaut à un submit et redirige sur modifs.php ???????? et le fichier n'est pas envoyé.
modifs.php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0){ echo 'il y a un fichier '; }else{ echo 'Il n\'y a pas de fichier'; }
J'obtiens toujours : pas de fichier.
Quelqu'un peut-il m'aider ? merci d'avance.
EDIT : Ajout du langage dans les balises de code.
A voir également:
- Déclencher un input file par une commande Javascript
- Invite de commande - Guide
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Commande terminal mac - Guide
2 réponses
Bonjour
Ce n'est pas une commande javascript qui se comporte comme un bouton submit, c'est input image.
C'est normal que l'input type = image se comporte comme un bouton submit : c'est exactement son rôle dans un formulaire
https://www.w3schools.com/tags/att_input_type.asp
Pour obtenir le comportement que tu désires, il suffit de l'empêcher de jouer ce rôle dans en ajoutant un "return false" dans son événement click :
Ce n'est pas une commande javascript qui se comporte comme un bouton submit, c'est input image.
C'est normal que l'input type = image se comporte comme un bouton submit : c'est exactement son rôle dans un formulaire
https://www.w3schools.com/tags/att_input_type.asp
Pour obtenir le comportement que tu désires, il suffit de l'empêcher de jouer ce rôle dans en ajoutant un "return false" dans son événement click :
<input type="image" src ="<?php echo $chemin;?>" name ="Mr" alt ="Mr." style="vertical-align: middle;border:solid 1px silver;border-radius:10px; width:60px;height:60px;background-color:#CCC;" onclick="$('#InputFileM').click(); return false;"/>
Bonjour,
Ah ?
Lequel (de code) ?
par ce que le seul code JS que je vois est :
qui revient à cliquer sur le champ de type file et de donc de faire "parcourir"
edit:les input type "image" font un submit.
https://www.w3schools.com/tags/att_input_type.asp
Par contre.. dans ton fichier PHP .. tu pourrais déjà commencer par faire des PRINT de tes variables pour voir ce qui arrive ...
Cordialement,
Jordane
la commande Java Script se comporte comme un bouton submit.
[...]
En cliquant sur le fichier choisi, cela équivaut à un submit et redirige sur modifs.php
Ah ?
Lequel (de code) ?
par ce que le seul code JS que je vois est :
onclick="$('#InputFileM').click();"
qui revient à cliquer sur le champ de type file et de donc de faire "parcourir"
edit:les input type "image" font un submit.
https://www.w3schools.com/tags/att_input_type.asp
Par contre.. dans ton fichier PHP .. tu pourrais déjà commencer par faire des PRINT de tes variables pour voir ce qui arrive ...
<?php echo "<br> POST :<br>"; print_r($_POST); echo "<br> FILES :<br>"; print_r($_FILES); if (isset($_FILES['monfichier']) && !$_FILES['monfichier']['error']){ echo "il y a un fichier "; }else{ echo "Il n'y a pas de fichier"; }
Cordialement,
Jordane
Le problème est effectivement réglé. Tout marche correctement.
Je n'avais pas bien compris l'action de l'input = image