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 :

Remplir contenu formulaire avec fichier txt


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Remplir contenu formulaire avec fichier txt
    Bonjour j'aimerais savoir ou orienter mes recherches. J'ai une page qui me permet de compléter des infos et les enregistrer sous forme de fichier txt

    Y a t-il une façon en JScript de récupérer le contenu de ce fichier txt et de l'afficher à même le "form name" de sorte que le input type="text" name="title" ait la valeur récupéré du fichier txt celle du input type="text" name="name" la même chose tout autant que textarea name="newstext"

    Finalement l'idée est de pouvoir une fois un fichier txt de fait, pouvoir l'éditer par la suite donc après récupération il faudrait pouvoir le resauvegarder sons la même forme

    Code php : 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
    <?php
    if (!isset($_POST['submit'])) {
    header('Content-Type: text/html;charset=UTF-8');
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
       <title>No</title>
       <link href="../style/admstyle.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
      <div id="main">
        <div id="caption">News</div>
    	  <form name="admnews" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
            News:<br/>
            <input type="text" name="title" size="40"/><br/><br/>
            Contenu:<br/>
            <textarea name="newstext" rows="15" cols="67"></textarea><br/>
    		Auteur:<br/>
    		<input type="text" name="name" size="40"/><br/><br/>
            <center><input type="submit" name="submit" value="Publier" /></center>
         </form> 
    <?php
    $lines = file('note.txt');
    // display file line by line
    foreach($lines as $line_num => $line) {
        echo "".htmlspecialchars($line)."<br />\n";
    }
    ?>
      </div>
    </body>   
    </html>
    <?php } else {
       $newsTitel   = isset($_POST['title']) ? $_POST['title'] : 'Untitled';
       $submitDate  = date('Y-m-d');
       $submitName  = isset($_POST['name']) ? $_POST['name'] : 'No User';
       $newsContent = isset($_POST['newstext']) ? $_POST['newstext'] : 'No content';
     
       $filename = date('YmdHis');
       $f = fopen('../news/'.$filename.".txt","w+");         
       fwrite($f,$newsTitel."\n");
       fwrite($f,$submitDate."\n");
       fwrite($f,$submitName."\n");
       fwrite($f,$newsContent."\n");
       fclose($f);
     
       header('Location:../index.php');   
    }
    ?>


    Merci pour les infos
    Dernière modification par Bovino ; 11/04/2013 à 17h34. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Pour un import/export de fichier, je pense que ça sera largement plus simple de faire ça côté serveur qu'avec du Javascript.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ok merci pour l'info mais je connais encore moins ça? Une piste pour orienter mes recherches


    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'avance...ce code me permet d'afficher le contenu de mon fichier texte

    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
    <?php
    header('Content-Type: text/html;charset=UTF-8');
    ?>
    <html>
    <head>
    <script type="text/javascript">
     
    	function init(){
     
    		var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    		extText = extText.replace(/[\r\n]/g," ");
    		document.forms[0].nMessage.value = extText;
    	}
     
    	window.onload=init;
     
    </script>
    </head>
    <body>
    <iframe name='messageTxt' src='20130408095551.txt' style='display:none'></iframe>
    <form>
    <textarea name='nMessage'></textarea>
    </form>
    </body>
    </html>
    Y a t-il moyen de faire en sorte que chaque ligne s'affiche au bon endroit en référence a input type="text" name="title" et suivant et non en affichant tout le texte dans un textarea?

    merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Un autre pas...

    Avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">	
    	function init(){
    		var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    		extText = extText.replace(/[\r\n]/g," ");
    		document.forms[0].newstext.value = extText;
    		document.forms[0].title.value = extText;
    		document.forms[0].name.value = extText;
    	}
    	//window.onload=init;
    </script>
    Je peux maintenant afficher le contenu dans chaque partie toutefois tout le contenu s'affiche au 3 endroits...

    Comment préciser que la ligne 1 va a tel endroit .... ou est ce possible de préciser un séparateur (disont <br />) qui se retrouverait dans le fichier texte?


    Merci

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    ton texte récupéré doit être "spliter" avant d'être utilisé.
    méthode split

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok merci pour l'info mais je cherche toujours selon mon fichier txt qui est produit selon cette structure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Titre
    2013-04-08
    Nom de l'auteur
    Text complet variable
    Qui correspond avec le code PHP qui produit le fichier

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $filename = date('YmdHis');
       $f = fopen('../news/'.$filename.".txt","w+");         
       fwrite($f,$newsTitel."\n");
       fwrite($f,$submitDate."\n");
       fwrite($f,$submitName."\n");
       fwrite($f,$newsContent."\n");
       fclose($f);

    Je ferais un split sur quoi? Concrètement ce ressemblerait a quoi?

    Merci encore
    Dernière modification par Bovino ; 12/04/2013 à 08h24. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu arrives à faire un replace() mais pas un split() ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bien...je connais pas grand chose cette partie de code je l'ai emprunté

    Je vois un peu mais si vous pouviez m'explique ces 2 lignes?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    		extText = extText.replace(/[\r\n]/g," ");

    Je pourrais ainsi mieux comprendre le tout


    Merci

    edit bon j'viens de voir que extText = extText.replace(/[\r\n]/g," "); ne m'est pas utile....le replace n'est qu'un façon de présenter le texte!!!

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bon finalement j'y arrive

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">	
    	function init(){
    		var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    		//extText = extText.replace(/[\r\n]/g," ");
    		var firstLine = extText.split('\n')[0];
    		var secondLine = extText.split('\n')[2];
    		var forthLine = extText.split('\n')[3];
    		document.forms[0].newstext.value = forthLine;  
    		document.forms[0].title.value = firstLine;
    		document.forms[0].name.value = secondLine;
    	}
    	//window.onload=init;
    </script>
    Par contre y a t-il moyen de préciser la ligne 3 et suivante (peut importe le nombre) donc jusqu'à la fin du texte?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var forthLine = extText.split('\n')[3-et suivante];
    Merci

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Tu n'as pas du dévorer la page du lien que je t'ai indiquer
    The split method returns the new array.
    donc tu ne le fait qu'une fois et tu utilises les différents éléments du tableau à ta guise.

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var tabTxt = extText.split('\n');
    for( var i=0, nb=tabTxt.length; i< nb; i++){
      console.log( tabTxt[i]);
    }

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NoSmoking Voir le message

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var tabTxt = extText.split('\n');
    for( var i=0, nb=tabTxt.length; i< nb; i++){
      console.log( tabTxt[i]);
    }
    j'ai essayé toute sorte de chose mais je n'arrive définitivement pas comment faire....pour compléter le tout

    J'arrive pas a comprendre concrètement, un autre indice pour m'orienter


    Merci

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    J'ai du mal à comprendre ton besoin mais je m'autorise une remarque, pourquoi ne pas formater, coté serveur, ton fichier en fonction de ton besoin final?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Une bonne remarque,

    le fait est que ce n'est le seul code que j'ai vu et que je peux manipuler un peu plus selon mes compétences très basic...

    j'aimerais avoir une autre solution mais je ne sais ou chercher?

    Ultimement l'idée est de pouvoir récupérer des fichiers txt sur un répertoire web à partir d'une page html/php et faire une liste de ces fichiers pour pouvoir ensuite être capable d'en sélectionner un et le faire afficher dans la page pour ainsi pouvoir le modifier et l'enregistrer de nouveau...

    Actuellement il ne me reste qu'à savoir comment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    modifier cette partie de code ci haut pour pouvoir récupérer et afficher l'un ou l'autre des fichiers (il peut en avoir 20 le nom du fichier txt est selon la date) dans le même endroit...ma partie php produit...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe name='messageTxt' id ='../resumes/20130412092633.txt' src='../resumes/20130412092633.txt' style='display:block'></iframe><input type='button' value='Import' onClick='init()' /><iframe name='messageTxt' id ='../resumes/20130412111328.txt' src='../resumes/20130412111328.txt' style='display:block'></iframe><input type='button' value='Import' onClick='init()' />

    Si y a d'autres option je suis preneur


    Merci
    Dernière modification par Bovino ; 15/04/2013 à 07h54. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Faire la recherche dans un répertoire de ton domaine et en faire une liste pour affichage se fait coté serveur avec le langage de ton choix.

    Afficher le contenu d'un fichier peut se faire coté client via la technique Ajax.

    La modification peut également se faire coté client via une simple TEXTAREA par exemple.

    Et la sauvegarde peut se faire via la technique Ajax.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Ok merci pour les infos.

    Mais comment récupérer des id différents...au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var extText = window.frames.messageTxt.document.body.lastChild.lastChild.data;
    Y a t-il une option?

    document.getElementById et récupérer les id produit par php et qui sont différent mais en conservant l'affichage dans le iframe messageTxt

    encore merci

  17. #17
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oText = window.frames.messageTxt.document.body.getElementById('id_cherchee');
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oFrame = document.getElementById( 'id_iframe');
    var oDoc = oFrame.contentWindow.document;
    // etc...
    ne fonctionne pas?

  18. #18
    Invité
    Invité(e)
    Par défaut
    Merci pour l'info l'affaire c'est que je ne sais pas les id du frames puisque ceux ci sont en fonction des fichiers se trouvant dans le répertoire

    Et en php celui ci donne les id...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe name='messageTxt' id ='" . $e . "' src='" . $e . "' style='display:block'></iframe><input type='button' value='Import' onClick='init()' />";
    Donc je pensais à un truc du genre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var extText = window.frames.messageTxt.document.body.getElementById('<?php echo($e); ?>');
    je dois passer la variable id de php a java

    merci pour l'aide

  19. #19
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    ...c'est que je ne sais pas les id du frames...
    tu peux également récupérer l'IFRAME via un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var lstIframe = document.getElementsByTagName('IFRAME'); // récupère une nodeLsit de toutes les IFRAME
    var oIframe = lstIframe[0]; // récup. de la 1st IFRAME
    Pour lever un doute IFRAME ou FRAME, et combien?

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Pour lever un doute IFRAME ou FRAME, et combien?
    c'est bien iframe que je veux parler...

    Et selon il pourrait y en avoir 20-25 à récupérer...


    Merci ça débloque

Discussions similaires

  1. Remplir un formulaire avec un contenu récupéré ailleurs
    Par Dynamès dans le forum Général Java
    Réponses: 2
    Dernier message: 03/07/2012, 10h35
  2. Réponses: 4
    Dernier message: 27/01/2009, 18h14
  3. Importer des donnees avec fichier txt
    Par flOZ dans le forum Requêtes
    Réponses: 8
    Dernier message: 21/04/2006, 17h26
  4. Réponses: 1
    Dernier message: 14/04/2006, 16h51
  5. [VB6] Contenu d'un fichier txt
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 28/03/2006, 16h07

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