IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Upload fichier en même temps qu'un form js/ajax/php


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 169
    Points : 34
    Points
    34
    Par défaut Upload fichier en même temps qu'un form js/ajax/php
    Bonjour,

    Je ne sais pas trop si je dois passer ce message sur le forum JS, Ajax, ou PHP.

    J'ai un form, avec un input fichier en plus du reste.
    Je passe mes infos par Ajax pour ne pas recharger la page.

    Je ne sais pas comment passe mon fichier pour le passer en même temps que mon form. Je dois donner au nom du fichier le N° id (auto-incrément) de l'insertion des infos en bdd.

    Je vous donne mes codes ci-après
    Coté php c'est un traitement normal des données, insertion ou update en bdd.

    mon souci c'est donc la gestion du fichier à upaloder.

    Bonne journée


    Résumé schématique du form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <FORM NAME='event_form' ID='event_form' METHOD="POST" ENCTYPE="multipart/form-data"  action="./form_result_event.php?goto=event">
    <!-- PHP -->
    echo "
    <input type='hidden' name='user' value='".$artiste_id."' />
    <input type='hidden' name='artiste_forum_id' value='".$artiste_forum_id."' />
    ";
    <!-- ENDPHP -->
    <input type='hidden' name='max_file_size' value='10485760'><input type='file' name='fichier' size='10'>
    Code ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    function send2ajax(action,i,id,lieu,date)
    {
    	f=document.event_form; // f est l'objet formulaire
    	// PREPARATION DES DONNEES
    	info ="u="+f.user.value;
    	info+="a="+f.artiste_forum_id.value;
     
    	run_ajax('form_result_event.php',info); // on appelle la fonction 
    }
     
    function run_ajax(file,data)
    {
    	var reg=new RegExp(" ", "g");
    	data=data.replace(reg,"%20");
    	//alert(file+"/"+donnees);
    	var xhr_object = null;
    	if(window.XMLHttpRequest) // Si Firefox
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // Si Internet Explorer
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    	{
    		// XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		return;
    	}
    	xhr_object.open("POST", "./"+file, true);
    	xhr_object.onreadystatechange = function() 
    	{
    		if(xhr_object.readyState == 4)
    		// alert(xhr_object.responseText);
    		eval(xhr_object.responseText);
    	}
     
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xhr_object.send(data);
    }

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut c'est possible de voir la page form_result_event.php?
    Sinon au niveau de ton script il semblerait que tu envoi deux fois sur cette page, l'un lors du submit du formulaire et l'autre via un appel ajax.
    Donc idéalement il en faudrait qu'un appel ajax.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <script type="text/javascript">
    function send2ajax(file)
    {
    	f=document.event_form; // f est l'objet formulaire
    	// PREPARATION DES DONNEES
    	info ="u="+f.user.value;
    	info+="a="+f.artiste_forum_id.value;
     
    	run_ajax(file,info); // on appelle la fonction 
    }
     
    function run_ajax(file,data)
    {
    	var reg=new RegExp(" ", "g");
    	data=data.replace(reg,"%20");
    	//alert(file+"/"+donnees);
    	var xhr_object = null;
    	if(window.XMLHttpRequest) // Si Firefox
    		xhr_object = new XMLHttpRequest();
    	else if(window.ActiveXObject) // Si Internet Explorer
    		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    	else
    	{
    		// XMLHttpRequest non supporté par le navigateur
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		return;
    	}
    	xhr_object.open("POST", "./"+file, true);
    	xhr_object.onreadystatechange = function() 
    	{
    		if(xhr_object.readyState == 4)
    		// alert(xhr_object.responseText);
    		eval(xhr_object.responseText);
    	}
     
    	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    	xhr_object.send(data);
    }
    function myFormParams(file,sub){
      if(sub){
        send2ajax(file);
      }
      return false;
    };
    </script>
    <FORM NAME='event_form' ID='event_form' METHOD="POST" ENCTYPE="multipart/form-data" onsubmit="return myFormParams('form_result_event.php',true);">
    <!-- PHP -->
    echo "
    <input type='hidden' name='user' value='".$artiste_id."' />
    <input type='hidden' name='artiste_forum_id' value='".$artiste_forum_id."' />
    ";
    <!-- ENDPHP -->
    <input type='hidden' name='max_file_size' value='10485760'><input type='file' name='fichier' size='10'>

Discussions similaires

  1. Uploadé plusieurs fichiers en même temps .
    Par DezMax dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2013, 17h40
  2. Lecture de deux fichiers en même temps
    Par salut93 dans le forum C++
    Réponses: 3
    Dernier message: 26/06/2007, 15h29
  3. [GD] uploader un fichier et même temps le redimensionner
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 25/02/2007, 23h29
  4. Voir deux fichier en même temps ?
    Par dr23fr dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 07/09/2006, 11h11
  5. [DOS] exécuter 2 fichiers en même temps
    Par toninio dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 04/04/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo