Dans le cadre d'un changement d'avatar totalement effectué en AJAX, j'ai mis en place un formulaire contenant le champ FILE et une iframe juste en-dessous. Cette iframe s'occupera de retourner des erreurs s'il y en a. Pour la petite histoire, la progression de l'upload s'affichera en bas à droite du site (pour que l'utilisateur puisse continuer de naviguer tranquillement sans devoir attendre la fin de l'upload ;) ).
Bref. Le problème, c'est que la communication des variables par le formulaire vers l'iframe ne marche pas du tout. Pourtant, j'ai bien renseigné le name de l'iframe dans le target du formulaire :/
Voici le code, ça vous aidera sûrement :
<?php
if(!isset($_GET['page'])) // Si l'utilisateur n'a pas envoyé le formulaire
{
?>
<h2>Charger une photo</h2>
<form method="post" enctype="multipart/form-data" target="iframe_1">
<input type="file" name="avatar" id="avatar" /><br /><br />
<input type="submit" class="changer" value="Changer"/><br /><br />
<span class="cacher" style="display : none;">
<input type="submit" value="Ajouter à l'imajothèque"/>
</span>
</form>
<iframe name="iframe_1" id="iframe_1" style="display : none;" src="changement_avatar.php?page=traitement"></iframe>
<?php
}
else
{
if($_GET['page']=='traitement') // Si l'utilisateur a envoyé le formulaire, on vérifie si le fichier est une image, si elle fait 2 Mo au maximum, etc etc.
{
if(!isset($_FILES['avatar'])) // Ce message s'affiche toujours -_- Donc il y a un problème au niveau de la communication des variables entre form-iframe... pourquoi ?
echo "La variable n'existe pas.";
}
}
?>
J'espère que vous pourrez m'aider ^^
Merci d'avance, bonne journée.