Probleme d'upload fichiers div ajax(c urgent) - PHP - Programmation
Marsh Posté le 11-09-2009 à 14:56:07
il me semble qu'il faut spécifier dans la balise du form que tu vas uploader un fichier.
ENCTYPE="multipart/form-data"
Marsh Posté le 11-09-2009 à 15:55:55
tu peux pas envoyer un fichier en ajax, mais y'a plusieur méthode pour le faire
http://www.xorax.info/blog/program [...] -file.html
Marsh Posté le 11-09-2009 à 13:48:09
Bonjour
Je travaille sur un site dynamique en php.j'ai fait une fonction dans la page index1.php pour afficher les autres pages dans un div dans index1.php,les pages sont bien affichées mais le probleme c'est que j'ai une page ou il y a un formulaire contient une input file pour telecharger des photos,dans la base de donnée, tous les champs sont stockés sauf l'image il ne la prend pas.voila le code de la forme :
<form name="formulaire" method="post" onSubmit="return verification()" action="javascript:ajax('Agenda/creer.php', 'hf', 'post', 'formulaire') ">
<table width="785" border="0" bordercolor="#006699">
<tr>
<td width="122"><span class="Style28">Titre d'évenement</span></td>
<td width="10" class="Style4">:</td>
<td width="266"><label>
<input name="titre" type="text" id="titre" size="30" />
</label></td>
<td width="125"><span class="Style4">Image d'évenement</span></td>
<td width="9"><span class="Style4">:</span></td>
<td width="227">
<input type="hidden" name="MAX_FILE_SIZE" value="250000" />
<input type="file" name="file" size="18" /></td>
</tr>
<tr>
<td valign="top" class="Style4">Ville</td>
<td class="Style4">:</td>
<td><input name="ville" type="text" id="ville" size="30" /></td>
<td><span class="Style4">Pays</span></td>
<td><span class="Style4">:</span></td>
<td><select name="pays" id="pays">
<option value="Andorre">Andorre</option>
<option value="Emirats Arabes Unis">Emirats Arabes Unis</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albanie">Albanie</option>
<option value="Armenie">Armenie</option>
</select></td>
</tr>
<tr>
<td rowspan="2" valign="top"><span class="Style4">Détails</span></td>
<td rowspan="2" valign="top" class="Style4">:</td>
<td rowspan="2"><label>
<textarea name="detail" cols="27" rows="7" id="detail"></textarea>
</label></td>
<td valign="top"><span class="Style4">Lien d'évenement</span></td>
<td valign="top"><span class="Style4">:</span></td>
<td valign="top"><input name="lien" type="text" id="lien" value="[http://]" size="30" /></td>
</tr>
<tr>
<td valign="top"><span class="Style4">Date d'évenement</span></td>
<td valign="top">:</td>
<td valign="top"><select name="jour" id="jour" autocomplete="off">
<option value="-1">Jour :</option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="mois" id="mois" onchange="editor_date_month_change(this, 'birthday_day','birthday_year');" autocomplete="off">
<option value="-1">Mois :</option>
<option value="01">Janvier</option>
<option value="02">Février</option>
<option value="03">Mars</option>
<option value="04">Avril</option>
<option value="05">Mai</option>
<option value="06">Juin</option>
<option value="07">Juillet</option>
<option value="08">Aôut</option>
<option value="09">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<span class="Style26">
<select name="annee" id="annee" autocomplete="off">
<option value="-1">
Année
:</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
</select>
</span></td>
</tr>
<tr>
<td class="Style4"> </td>
<td class="Style4"> </td>
<td><label></label></td>
<td> </td>
<td> </td>
<td><div align="right">
<input type="submit" name="Submit" value="Envoyer" />
</div></td>
</tr>
</table>
</form>
ajax est la fonction qui affiche les pages dans la div:
<script type="text/javascript">
function getFormData(form)
{
var data1 = "";
var form = document.getElementById(form);
var elements = form.elements;
for(var i=0; i<form.length; i++)
{
data1 += elements[i].name + "=" +escape(elements[i].value);
if((i+1)<form.length)
{
data1+="&";
}
}
return data1;
}
function ajax(fichier, div, method, form)
{
var xhr=null;
var data="null";
if(form!="null" )
{
if(method=="GET" )
{
data=form;
method="POST";
}
else
{
data = getFormData(form);
}
}
// détection du navigateur pour la création de l'objet XMLHttpRequest (soit l'acronyme xhr)
if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP" );
}
xhr.open( method, fichier, false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" );
xhr.send(data);
if (document.getElementById)
{
document.getElementById(div).innerHTML=xhr.responseText;
}
else
{
if (document.layers)
{
document.div.innerHTML=xhr.responseText;
}
else
{
document.all.div.innerHTML=xhr.responseText;
}
}
}
</script>
Si quelqu'un pourras m'aider pour arriver à stocker les images , je serai reconnaissante. Merci en avance.