Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2791 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Pré-remplissage de champs de formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pré-remplissage de champs de formulaire

n°1870706
antitrust5​6
Posté le 07-04-2009 à 17:17:36  profilanswer
 

Bonjour,
 
 
Je voudrais savoir s'il existe une solution en javascript ou autres qui permet de pré-remplir les champs d'un site distant.
 
Je souhaiterais afficher une frame comme ci-dessous et remplir les champs en cliquant manuellement sur un bouton.
 
http://sp.codeachat.com/test.php
 
 
José


Message édité par antitrust56 le 07-04-2009 à 17:27:16
mood
Publicité
Posté le 07-04-2009 à 17:17:36  profilanswer
 

n°1870735
Profil sup​primé
Posté le 07-04-2009 à 17:36:23  answer
 

Code :
  1. frameDocument = document.getElementById("myiframe" );
  2. frameDocument = myf.contentWindow.document || myf.contentDocument;
  3. frameDocument.document.getElementById('input').value = "test";


 
(Vite bricolé donc pas sur que çà marche, j'ai fait çà à partir d'un exemple trouvé sur le net en cherchant un peu)

n°1870864
antitrust5​6
Posté le 08-04-2009 à 08:47:18  profilanswer
 

J'ai fais des recherches sur internet sans trouver de solutions qui marche.
 
J'ai testé ton script plus haut en remplacer 'myiframe' par le nom de ma frame, mais celà ne fonctionne pas

n°1870916
Profil sup​primé
Posté le 08-04-2009 à 10:36:46  answer
 

un message d'erreur dans la console ?
Que se passe-t-il exactement ?

n°1870922
Bidem
Posté le 08-04-2009 à 10:49:53  profilanswer
 

Code :
  1. myf = document.getElementById("myiframe" );
  2. frameDocument = myf.contentWindow.document || myf.contentDocument;
  3. frameDocument.document.getElementById('input').value = "test";


 
Essaye comme ça ;)

n°1870926
Profil sup​primé
Posté le 08-04-2009 à 10:56:22  answer
 

ah oui bien vu bidem ;)

n°1870932
antitrust5​6
Posté le 08-04-2009 à 11:03:32  profilanswer
 

Merci pour votre aide,  
 
La console d'erreur me renvoi "myf is null" pourtant j'ai bien spécifié le nom de ma frame (voir le code ci-dessous).
 
L'iframe est un formulaire test.
 

Code :
  1. <script type="text/javascript">
  2. function remplir()
  3. {
  4.       myf = document.getElementById("iframe" );
  5.       frameDocument = myf.contentWindow.document || myf.contentDocument;
  6.       frameDocument.document.getElementById('input').value = "test";
  7. }
  8. </script>
  9. <iframe src="http://sp.codeachat.com/form.html" name="iframe" id="iframe" width="100%" height="100%">Votre navigateur ne gère pas les Iframes.</iframe>
  10. Formulaire test à remplir
  11. <form action="" method="post" name="iframe">
  12. Ajouter votre nom : <input type="text" name="monchamp">
  13. Mettre votre email : <input type="text" name="email">
  14. </form>


Message édité par antitrust56 le 08-04-2009 à 11:28:01
n°1870939
Profil sup​primé
Posté le 08-04-2009 à 11:13:07  answer
 

nan mais "iframe" c'est le nom de ta frame pas l'id [:dawa]
Il faut remplacer ta frame par çà :

Code :
  1. <iframe src="http://sp.codeachat.com/form.html" name="iframe" id="iframe" width="100%" height="100%">Votre navigateur ne gère pas les Iframes.</iframe>


Normalement çà devrait fonctionner.


Message édité par Profil supprimé le 08-04-2009 à 11:13:17
n°1870950
antitrust5​6
Posté le 08-04-2009 à 11:26:57  profilanswer
 

Merci Lucas. Ça fait une action mais rien ne se passe, j'ai une erreur frameDocument.document is undefined.
 
J'ai essayé divers combinaisons sans succès.
 
 

Code :
  1. <script type="text/javascript">
  2. function remplir()
  3. {
  4.       myf = document.getElementById("iframe" );
  5.       frameDocument = myf.contentWindow.document || myf.contentDocument;
  6.       frameDocument.document.getElementById('input').value = "test";
  7. }
  8. </script>
  9. <iframe src="http://sp.codeachat.com/form.html" name="iframe" id="iframe" width="100%" height="100%">Votre navigateur ne gère pas les Iframes.</iframe>
  10. Formulaire à remplir
  11. <form action="" method="post" name="form1">
  12. Ajouter votre nom : <input type="text" name="nom">
  13. Mettre votre email : <input type="text" name="email">
  14. </form>


Message édité par antitrust56 le 08-04-2009 à 11:27:16
n°1870953
Profil sup​primé
Posté le 08-04-2009 à 11:28:43  answer
 

Décidément quand je t'ai fait ce code je devais être fatigué !
La solution est :

Code :
  1. myf = document.getElementById("iframe" );
  2. frameDocument = myf.contentWindow.document || myf.contentDocument;
  3. frameDocument.getElementById('input').value = "test";

mood
Publicité
Posté le 08-04-2009 à 11:28:43  profilanswer
 

n°1870960
antitrust5​6
Posté le 08-04-2009 à 11:34:35  profilanswer
 

Ca marche, juste une détail lorsque je clique sur le bouton d'action Remplir, "Test" s'affiche dans le champs de ma frame et s'efface ensuite automatiquement.
 
N'est-il pas possible de remplir des champs en définissant le "nom du champs" plutôt que " l'id " ?


Message édité par antitrust56 le 08-04-2009 à 11:39:02
n°1870976
Profil sup​primé
Posté le 08-04-2009 à 11:43:31  answer
 

euh...
Je te le répète, getElementById accède à un objet par son ID.
Il faut que tu attribue le bon ID à ton input.
Donc si tu fais getElementById('input'), il faut rajouter id="input" dans ton tag input.
Attention : 1 seul ID par objet, c'est obligatoire !

n°1870989
antitrust5​6
Posté le 08-04-2009 à 11:51:25  profilanswer
 

Ok Lucas, j'ai bien compris, merci pour ton aide en tout cas.
 
Si jamais un formulaire distant dont je n'ai pas accès n'a de champs "ID", en gros je dois rajouter un bout de code dans le champ avec l'ID du nom de l'objet.
 
Un peu à la manière d'un file_get_contents avec des ajouts de codes non ou y a t-il une solution plus facile pour ça ?


Message édité par antitrust56 le 08-04-2009 à 11:52:56
n°1871036
Profil sup​primé
Posté le 08-04-2009 à 12:32:17  answer
 

Non, en fait, tu devrais utiliser getElementsByName :

Code :
  1. frameDocument.getElementByNames('nom').value = "test";


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Pré-remplissage de champs de formulaire

 

Sujets relatifs
ACCESS - Ajout enregistrement dans un sous-formulaireAIde PHP formulaire
PK sur deux champs en char[SQL] Bdd avec LEFT JOIN, tri sur deux champs
Créer un formulaire PHP qui renvoie les données en Excelrecherche multi champs ( x champs) + nom entête de champ
Ne pas recherger une animation flash à la validation d'un formulaireHelp Javascript -> Formulaire dynamique
Affichage des champs d'une table [RESOLU]email avec formulaire
Plus de sujets relatifs à : Pré-remplissage de champs de formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR