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 :

[AJAX] upload image + recup variable


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut [AJAX] upload image + recup variable
    Bonjour çà tous, je vais tenter d'être le plus clair possible
    J'ai une page PHP(page1.php) contenant divers <input texte>, mais contenant également une iframe(iframe.php) qui me permet d'uploader des images sans avoir à recharger du coup.

    Le probléme est le suivant : je ne sais pas comment communiquer une variable entre ma page1.php et mon iframe.php.

    Concrétement, je rentre une 'réf' ds un des input texte de ma page1.php, et je voudrais que les images que j'envoi par le biais de mon iframe.php se renomme : 'réf'1.jpg, 'réf'2.jpg...
    Mais je ne vois pas comment dire à mon iframe.php le 'réf' que je vien de rentrer sur ma page1.php

    Voila, j'espere que j'aurais été assez clair. Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    personne n'as de réponse? Est ce qu ela communication de variable entre une iframe et sa page parent son impossible???

    Merci d'avance

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Ya une solution un peu brutale mais qui devrais marcher, c'est que tu met une touche de AJAX (on est dans le forum AJAX tout de même ) et que tu y fais appel avec un onlostfocus ou autre de ton champ ref et que via cet appel ajax tu stock ta valeur de ref dans une variable $_SESSION, ou bien dans un fichier, ou dans ce que tu veux qui peut contenir des données entre deux pages différentes, et que quand tu upload tes images pour les nommer tu récupère là valeur là où tu l'as stockée.

    Je sais pas si j'ai été réellement clair, enfin bon si c'est pas le cas hésite pas ^^

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    Merci beaucoup pour ta réponse.
    Cependant, je débute en Ajax.. aurait tu un exemple d'utilisation de onLastFocus?
    Avec cette methode, je v devoir mettre en place un bouton pour passer ma variable de ma page parent a mon iframe ou non?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bah justement l'utilisation du onlostfocus c'est pour éviter d'avoir à cliquer sur un bouton.

    Donc ton champ de texte devrais ressembler à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="ref" />
    et ton javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function ma_fonction_ajax()
    {
      ...
    }
     
    var ref = document.getElementById("ref");
    ref.onlostfocus = ma_fonction_ajax;
    Donc l'action sur le onlostfocus ca s'effectuer dès que le champ de texte n'aura plus le focus (la main) donc dès que l'utilisateur choisira ses fichiers à uploader.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    OK, merci beaucoup je vais tester ça..

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    bon, onLostFocus ca marche pas, par contre onblur c'est ok.
    Je me retrouve avec quelque chose comme ca :
    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
    <body>
    <script type="text/javascript" language="javascript">
    function ma_fonction_ajax()
    {
     alert('ref');
     <?
     $fp = fopen("../fichier.txt","r"); //lecture
     ?>
    }
     
    </script>
    <center>
    <div id="main">
     
    <form action="test.php" method="post">
    <input name="ref" type="text" id="ref">
    <script type="text/javascript" language="javascript">
    var ref = document.getElementById("ref");
    ref.onblur = ma_fonction_ajax;
    </script>
    ca m'affiche bien l'alerte 'ref', mais par contre le php marche pas. Comment je peut faire sans php pour ecrire ds un fichier?

    Merci d'avance

  8. #8
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Comment ça le PHP ne marche pas ? Comment le sais-tu ? Ton code n'est supposé rien faire à part ouvrir le fichier là.

    Sinon, pour info, tu peux mettre les évènements directement dans la balise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref" id="ref" onBlur="ma_fonction_ajax();">
    Nas'

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    le php marche lol!
    bon par contre, la source suivante :
    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
    <script type="text/javascript" language="javascript">
    function ma_fonction_ajax()
    {
     <?
     touch("popo.txt"); 
     $fp=fopen("popo.txt","w");
     fwrite($fp,"test");  ?>
     var ref = document.getElementById("ref");
     alert(ref);
    }
     
    </script>
    <center>
    <div id="main">
     
    <form action="test.php" method="post">
    <input name="ref" type="text" id="ref" onBlur="ma_fonction_ajax();">
    ...
    m'ouvre bien un alert mais ds lequel c'est écrit "[object]".
    Je n'arrive pas a récuperer dans mon alert ce que j'ai écris ds mon "input type text".
    J'ai essayé en mettant des trucs du genre :
    - alert('ref');
    - alert("ref");... mais rien ni fais.

    De plus, je ne vois pas comment ecrire le contenu de mon "input text" dans mon fichier popo.txt

    Merci encore pour votre aide

  10. #10
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    C'est normal En DOM (Document Object Model), tu récupères un objet avec getElementById. Toi tu veux la valeur de cet objet donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var ref = document.getElementById("ref").value;
    Et voilà le travail
    Alala... et dire que je connaissais rien de tout ça hier, et je commence déjà à aider les autres, si c'est pas la classe ça

    Nas'

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    Ca marche impec' en rajoutant le .value.
    Un grand merci à toi!
    par contre je ne vois toujours pas comment placé cette fameuse reference ds mon fichier php...

  12. #12
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Tu peux réexpliquer ton problème de PHP ? Je n'ai pas bien compris ton premier message

    Nas'

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    lol, je me doutais que jaV pas du étre super clair...
    voici donc mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function ma_fonction_ajax()
    {
     <?
     touch("popo.txt"); 
     $fp=fopen("popo.txt","w");
     fwrite($fp,"test essai");  ?>
     var ref = document.getElementById("ref").value;
     alert(ref);
    }
    grace a ton coup de main, jarrive bien a afficher ma variable "ref" dans mon alert. Cependant, je voudrais également la copier ds mon fichier popo.txt.
    et je ne sais pas comment copier une varialbe Javascript ds du php..

    Je sais que c'est cette ligne là qu'il faut modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($fp,"test essai");  ?>
    et qu'il faut remplacer "test essai" par quelque chose, mais quoi?

  14. #14
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Tu peux appeler une page php qui se charge de le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ton_xhr.open("GET", "ecrire.php?ref=" + ref, true);
    Et tu auras dans ton fichier ecrire.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = $_GET['ref'] ;
    fwrite($fp,$var);
    Y'a peut-être plus simple mais bon, c'est une solution.

    Nas'

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 45
    Points
    45
    Par défaut
    oula, j'ai bien peur de ne plus rien comprendre du tout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ton_xhr.open("GET", "ecrire.php?ref=" + ref, true);
    c'est du PHP ça? je reconnais bien le GET et le passage de paramétre avec le "?", mais pas le ".open".

    Le code que tu me fournis là est censé m'écrire ce que j'ai mis ds mon input texte (name=ref) dans mon fichier texte?

    J v testé mais je capte plus tout là lol
    Merci bcp en tous k pour tes coup de main...

  16. #16
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Non non
    L'objet xhr permet d'effectuer des requêtes (asynchrones ou pas) vers un serveur web. En l'occurence, la ligne que je t'ai donnée dit qu'on demande à la page ecrire.php de faire quelque chose.
    Donc ton code PHP pur et dur sera dans le fichier ecrire.php auquel on passe en paramètre notre message à écrire dans un fichier.
    Renseigne toi sur l'objet XMLHttpRequest, tu comprendras mieux je pense

    Nas'

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/02/2011, 14h01
  2. Réponses: 4
    Dernier message: 10/10/2010, 23h37
  3. [AJAX] Upload image en ajax
    Par Laurelaie dans le forum AJAX
    Réponses: 4
    Dernier message: 15/10/2009, 13h21
  4. [AJAX] upload d'images php/ajax
    Par zehni dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/08/2007, 14h13

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