Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creation de formulaire automatique

Sujet résolu
    6 janvier 2011 à 22:37:45

    Salut à tous,

    J'ai quelques difficultés, je suis en train de créer un site de vente en ligne, tout ca pour maitriser AJAX :o , malheureusement j'ai un soucis, je m'explique (attention à la tartine)
    J'ai un formulaire d'ajout d'annonce, dans celui-ci un systeme d'upload "dynamique d'image" (pseudo AJAX en utilisant une iFrame). Mon soucis est que j'aimerai, dès qu'une image est uploadée, qu'un autre champ "files" apparaissent, pour cela j'ai créé une fonction en JS generant le code HTML, malheureusement lorsque la deuxieme champs s'affiche, le champ s'affiche mais le reste de la page disparait (j'utilise un document.write)

    voici un petit bout de code pour vous aider à comprendre :


    document.write("<form action='uploadPhoto.php' method='post' target='uploadTarget' enctype='multipart/form-data' name='form"+idPhoto+"'>
      <input type='file' name='fileField' id='photo"+id+"'>
      <input type='hidden' name='id' value='"+id+"' >
    </form>");
    


    Y a t'il un autre moyen que document.write pour ajouter au code html existant un nouveau champ <form> sans pour autant utiliser getElementById() avec lequel je ne sais pas comment ajouter du code à celui existant ?
    Serait-ce plus pour generer mon formulaire d'utiliser les DOM (createElement? ) ? Si oui auriez-vous un ptit tutos ?

    Merci beaucoup pour votre aide :D
    • Partager sur Facebook
    • Partager sur Twitter
      6 janvier 2011 à 23:05:38

      Utilise innerHTML et pas document.write(), ce dernier efface toute la page pour afficher ce qu'il a en paramètre.
      • Partager sur Facebook
      • Partager sur Twitter
        6 janvier 2011 à 23:10:26

        je suis un peu une brêle en JS, mais dis-moi, si je fait
        document.getElementById("formPhoto").innerHTML = <form ...>
        Y a t-il une maniere d'ajouter du code à au innerHTML précédent ?
        Par exemple :
        <td id="formPhoto">
        <form id ="form1"></form>
        </td>

        Ajouter en plus de <form id ="form1"></form> une autre balise <form id ="form2"></form> avec le innerHTML ?

        Merci pour ta réponse en tout cas :-)
        • Partager sur Facebook
        • Partager sur Twitter
          6 janvier 2011 à 23:17:17

          Je ne suis pas expert en JS pur, mais fais l'essai, pour voir si innerHTML remplace tout ou ajoute. Vois ceci.
          • Partager sur Facebook
          • Partager sur Twitter
            6 janvier 2011 à 23:42:58

            En utilisant l'opérateur "+=" cela est possible en tout cas, mais je crois que je me complique trop la vie et que le mieux est que je genere mon formulaire en DOM

            Exemple :
            var form = document.createElement("form");
            form.id = "form1";
            form.target = "uploadTarget";
            var fileInput = document.createElement("input");
            fileInput.type = "file";

            fileInput.appendChild("form");

            Je pense que ca fonctionne comme ca, en tout cas dès que j'y serai arrivé, je posterai la solution au cas ou ca pourrait aider quelqu'un

            Merci pour ton aide ;-)
            • Partager sur Facebook
            • Partager sur Twitter

            Creation de formulaire automatique

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown