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

Langage PHP Discussion :

[Système] Exécution d'un code PHP après clic sur un bouton


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut [Système] Exécution d'un code PHP après clic sur un bouton
    Bonjour à tous !
    J'ai un petit problème à vous soumettre,
    Je construit actuellement mon propre webmail.
    Je cherche a gérer les fichiers joints par l'intermediaire d'une interface de ce type :

    Mon problème est le suivant :
    -Une personne selectionne un fichier sur son pc, ensuite elle clique sur "joindre" j'aimerai à ce moment là qu'un code php s'execute pour alimenter une base de donnée avec les informations sur le fichier, le tout evidement sans recharger la page.
    Comment puis-je faire ceci ?
    J'ai une vague idée qu'il faudrait que j'utilise de l'ajax ? Auriez vous une solution simple et efficace a me proposer ?
    Merci d'avance à tous de vos réponses ;-)
    Images attachées Images attachées  

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Utilise AJAX

    Sur le click du bouton, tu fais appel à ta fonction JS qui créera ton objet AJAX et appelea une page PHP qui sera exécuter et dont le résultat se renvoyé dans un DIV à ta convenance ;-)

    Code js : 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
    function AJAX(variableAinsereDANStaBDD)
    {
     
     
    var xhr;
     
        if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
    	{ 
    	    xhr = new XMLHttpRequest();     //  Firefox, Safari, ...
    	} 
    	else if (window.ActiveXObject)                    //  Version Active
    	   {
    		  xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer 
    	   }
     
        xhr.onreadystatechange  = function()
        { 
            if(xhr.readyState  == 4 && xhr.status  == 200)
    		{
    			document.getElementById('IDdelabaliseDIVmisAjour').innerHTML = xhr.responseText;
            }
        };
     
    	xhr.open("POST", 'URLdetapagePHPaAppeler',  false);
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xhr.send("strParametre="+variableAinsereDANStaBDD);
    	document.getElementById('IDdelabaliseDIVmisAjour').innerHTML = xhr.responseText;
     
    }

    Dans ta page PHP appelé, tu créer ton script avec comme variable POST celle ci : $_POST['strParametre']

    Qui te donnera l'info a insérer dans ta base et dans ton code PHP tu fais ta mise en page pour que tout cela s'affiche comme tu le souhaite ;-)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Il faudrait également remplacer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    else if (window.ActiveXObject)                    //  Version Active
    {
    	xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer 
    }
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    else if (window.ActiveXObject)                    //  Version Active
    {
    	try
    	{
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer
    	}catch(e)
    	{
    		try
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}catch(e) {}
    	}
    Après ça tu peux vérifier aussi que ton instance XMLHTTP a bien été créer avec un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(!xhr)
    	//message d'erreur
    Il faut aussi savoir que tu pourra récuperer les informations que tu passera par la méthode POST, mais malheureusement tu ne pourras pas uploader ton fichier, AJAX ne gére pas ce type de données.

  4. #4
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Merci merci merci !
    C'est pile ce que je cherchais !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/04/2010, 06h30
  2. [AC-2003] Affectation variable après clic sur un bouton.
    Par maxime350 dans le forum IHM
    Réponses: 7
    Dernier message: 20/02/2010, 17h37
  3. Formulaire, action "submit" directe après clic sur un bouton radio
    Par eLynx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/10/2009, 19h29
  4. [HTML] affichage d'une page après clic sur le bouton 'précédent' du navigateur
    Par val_lala dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 06/04/2008, 23h21

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