Upload plusieurs type='file' en même temps
Bonjour, tout d'abord je ne suis pas sur de l'emplacement de mon sujet car la question est plus en php/html mais mon code étant majoritairement en Javascript je pense que si l'on n'a aucune connaissance dans ce langage la compréhension n'en sera que plus difficile.
Voici mon problème : j'ai besoin d'upload un certain nombre d'images dans un dossier précis mais ceci à partir de plusieurs types='file' différent, et je ne sais même pas si c'est possible. Upload un fichier à la fois je sais le faire mais là j'ai un nombre d'images qui peut aller de 0 à 100 et je ne peux pas demander à mon utilisateur de remplir 100 formulaires à la suite. Je ne sais pas si je suis très clair je vais donc montrer mon code : ( pour information j'utilise le framework codeIgniter )
PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <form class="form-horizontal" role="form" method="post" name="formulaireAjout" accept-charset="utf-8" action=<?php echo base_url("assets/codeIndependant/creation.php");?>>
<div class='form-group'>
<div class='col-sm-10'>
<select class="form-control" id="matiereSelect" name="matiereSelect" onchange="matiere(this.value)">
option>Choisir une matière</option>
<option value="anglais">Anglais</option>
<option value="culture">Culture générale</option>
<option value="francais">Français</option>
<option value="raisonnement">Raisonnement et logique</option>
</select>
</div>
</div>
<span id="annee[]"></span>
<span id="nbQuestion[]"></span>
<span id="question[]"></span>
<span id="hiddenAnnee[]"></span>
<span id="hiddenMatiere[]"></span>
</form> |
Javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
| function matiere(matiere){
var now = new Date();
var annee = now.getFullYear();
var choixAnnee = "<div class='form-group'><div class='col-sm-10'><select id='anneeSelect' name='anneeSelect' class='form-control' onchange='anneeChoix(this.value)'><option>Sélectionner une année</option>";
for(i=2010; i<=annee + 1; i++)
{
choixAnnee = choixAnnee + "<option value="+ i +">"+ i +"</option>";
}
choixAnnee = choixAnnee + "</select></div></div>";
document.getElementById("matiereSelect").disabled=true;
afficheR = document.getElementById("annee[]");
afficheR.innerHTML = choixAnnee;
afficheR = document.getElementById("hiddenMatiere[]");
afficheR.innerHTML = "<input id='matiere' name='matiere' type='hidden' value='"+ matiere +"'>";
}
function anneeChoix(annee)
{
var nombreQuestion = "<div class='form-group'><div class='col-sm-10'><select id='questionEcriture' class='form-control' onchange='ecritureQuestion(this.value)'><option>Choisir le nombre de question</option><option value='20'>20</option><option value='50'>50</option></select></div></div>";
document.getElementById("anneeSelect").disabled=true;
afficheR = document.getElementById("nbQuestion[]");
afficheR.innerHTML = nombreQuestion;
afficheR = document.getElementById("hiddenAnnee[]");
afficheR.innerHTML = "<input id='annee' name='annee' type='hidden' value='"+ annee +"'>";
}
function ecritureQuestion(nbQuestion)
{
var question ="";
for(i=1; i<=nbQuestion; i++)
{
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='question'>Type d'écriture question :</label><div class='col-sm-7'><select id='typeEcriture"+i+"' class='form-control' onchange='typeQuestion(this.value, "+i+")'><option>Choisir le type d'écriture</option><option value='texte'>Texte</option><option value='image'>Image</option></select></div></div>";
question = question + '<span id="texte'+i+'[]"></span><span id="image'+i+'[]"></span>';
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='choix1"+ i +"'>Choix réponse n°1 : </label><div class='col-sm-7'><input class='form-control' type='text' id='choix1"+ i +"' name='choix1"+ i +"'></div><label classe='radio'><input type='radio' class='checkbox' id='choix1"+ i +"' name='check"+ i +"'></label></div>";
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='choix2"+ i +"'>Choix réponse n°2 : </label><div class='col-sm-7'><input class='form-control' type='text' id='choix2"+ i +"' name='choix2"+ i +"'></div><label classe='radio'><input type='radio' class='checkbox' id='choix2"+ i +"' name='check"+ i +"'></label></div>";
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='choix3"+ i +"'>Choix réponse n°3 : </label><div class='col-sm-7'><input class='form-control' type='text' id='choix3"+ i +"' name='choix3"+ i +"'></div><label classe='radio'><input type='radio' class='checkbox' id='choix3"+ i +"' name='check"+ i +"'></label></div>";
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='choix4"+ i +"'>Choix réponse n°4 : </label><div class='col-sm-7'><input class='form-control' type='text' id='choix4"+ i +"' name='choix4"+ i +"'></div><label classe='radio'><input type='radio' class='checkbox' id='choix4"+ i +"' name='check"+ i +"'></label></div>";
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='choix5"+ i +"'>Choix réponse n°5 : </label><div class='col-sm-7'><input class='form-control' type='text' id='choix5"+ i +"' name='choix5"+ i +"'></div><label classe='radio'><input type='radio' class='checkbox' id='choix5"+ i +"' name='check"+ i +"'></label></div>";
question = question + "<div class='form-group'><label class='control-label col-sm-2' for='question'>Type d'écriture reponse :</label><div class='col-sm-7'><select id='typeEcritureRep"+i+"' class='form-control' onchange='typeReponse(this.value, "+i+")'><option>Choisir le type d'écriture</option><option value='texte'>Texte</option><option value='image'>Image</option></select></div></div>";
question = question + '<span id="texteRep'+i+'[]"></span><span id="imageRep'+i+'[]"></span><br/><br/>';
}
question = question + "<input id='nbQuestion' name='nbQuestions' type='hidden' value='"+ nbQuestion +"'>";
question = question + "<input id='message' type='hidden' name='message'>";
question = question + "<div class='form-group'><div class='col-sm-offset-2 col-sm-10'><button type='submit' id='boutonAjout' class='btn btn-default' onClick='envoi()'>Ajouter</button></div></div>";
document.getElementById("questionEcriture").disabled=true;
afficheR = document.getElementById("question[]");
afficheR.innerHTML = question;
}
function envoi()
{
nbQuestion = (document.getElementById('nbQuestion').value);
var typeQuestion;
var typeReponse;
var questionnaire = "<?xml version='1.0' encoding='ISO-8859-1'?><serie>\n";
for(i=1; i<=nbQuestion; i++)
{
typeQuestion = (document.getElementById('typeEcriture'+i+'').value);
typeReponse = (document.getElementById('typeEcritureRep'+i+'').value);
if(typeQuestion == 'texte')
{
questionnaire = questionnaire + "<questionnaire><question type='texte'>"+ (document.getElementById('question'+i+'').value) +"</question>\n";
}
else
{
if(typeQuestion == 'image')
{
questionnaire = questionnaire + "<questionnaire><question type='image'>"+ (document.getElementById('question'+i+'').value) +"</question>\n";
}
}
for(j=1; j<=5; j++)
{
if(document.getElementById('choix'+j+''+i).checked)
{
questionnaire = questionnaire + "<choix bon='O'>"+ (document.getElementById('choix'+j+i+'').value) +"</choix>\n";
}
else
{
questionnaire = questionnaire + "<choix bon='N'>"+ (document.getElementById('choix'+j+i+'').value) +"</choix>\n";
}
}
if(typeReponse == 'texte')
{
questionnaire = questionnaire + "<reponse type='texte'>"+ (document.getElementById('reponse'+i+'').value) +"</reponse></questionnaire>\n";
}
else
{
if(typeReponse == 'image')
{
questionnaire = questionnaire + "<reponse type='image'>"+ (document.getElementById('reponse'+i+'').value) +"</reponse></questionnaire>\n";
}
}
alert(questionnaire);
}
document.getElementById("message").setAttribute("value", questionnaire);
}
function typeQuestion(selection, i)
{
if(selection == 'texte')
{
texte = "<div class='form-group'><label class='control-label col-sm-2' for='question'>Question "+ i +" : </label><div class='col-sm-7'><input class='form-control' type='text' id='question"+ i +"' name='question"+ i +"''></div></div>";
document.getElementById("typeEcriture"+i+"").disabled=true;
afficheR = document.getElementById("texte"+i+"[]");
afficheR.innerHTML = texte;
}
else
{
if(selection == 'image')
{
image = "<div class='form-group'><label class='control-label col-sm-2' for='question'>Question "+ i +" : </label><div class='col-sm-7'><input class='form-control' type='file' id='question"+ i +"' name='question"+ i +"''></div></div>";
document.getElementById("typeEcriture"+i+"").disabled=true;
afficheR = document.getElementById("image"+i+"[]");
afficheR.innerHTML = image;
}
}
}
function typeReponse(selection, i)
{
if(selection == 'texte')
{
texte = "<div class='form-group'><label class='control-label col-sm-2' for='reponse"+ i +"'>Réponse : </label><div class='col-sm-7'><input class='form-control' type='text' id='reponse"+ i +"' name='reponse"+ i +"'></div></div><br/><br/>";
document.getElementById("typeEcritureRep"+i+"").disabled=true;
afficheR = document.getElementById("texteRep"+i+"[]");
afficheR.innerHTML = texte;
}
else
{
if(selection == 'image')
{
image = "<div class='form-group'><label class='control-label col-sm-2' for='reponse"+ i +"'>Réponse : </label><div class='col-sm-7'><input class='form-control' type='file' id='reponse"+ i +"' name='reponse"+ i +"'></div></div><br/><br/>";
document.getElementById("typeEcritureRep"+i+"").disabled=true;
afficheR = document.getElementById("imageRep"+i+"[]");
afficheR.innerHTML = image;
}
}
} |
Le fichier creation.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?php
if(isset($_POST['message']))
{
$matiere = $_POST['matiere'];
$annee = $_POST['annee'];
$message = $_POST['message'];
$files = glob("../xml/".$matiere.$annee."_*.xml");
$file = "../xml/".$matiere.$annee."_".(count($files)+1).".xml";
$fileopen = fopen("$file", "a");
fwrite($fileopen, $message);
fclose($fileopen);
header("location: ../../index.php/accueil");
}
?> |
Je ne m'attends pas à ce que quelqu'un s'amuse à lire tout le code je l'ai mis juste à titre informatif. Je veux surtout savoir si c'est possible car j'ai cherché sur internet et je n'ai rien trouvé sur le sujet je commence à croire que je vais devoir chercher un autre solution.
En espérant que vous puissiez m'aider.
Cordialement
Bloxas