2011-08-09 3 views
0

J'essaie de remplir automatiquement un formulaire (actuellement en utilisant le formulaire de contact 7) avec les détails de l'utilisateur wordpress.Wordpress formulaire autofill

c'est le code actuel:

<script type="text/javascript"> 
<?php 
    if (is_user_logged_in()){ 
     global $current_user; 
     get_currentuserinfo(); ?> 
     document.getElementByName("your-name").value = "<?php $current_user->user_email ?>"; 
     <?php 
    } ?> 
</script> 

J'utilise le plugin formulaire de contact 7 donc il est appelé par le code court.

Rien ne semble se passer avec ce code mais je l'ai eu pour me faire écho l'email de l'utilisateur donc je ne pense pas que ce soit un problème avec la récupération des données. Si je devais parier, ce serait un problème de remplir le formulaire avec les données.

J'ai vu quelques plugins de remplissage automatique pour le formulaire de contact 7, mais je veux aussi le faire avec d'autres formes (en particulier les formes gravitaires), j'ai donc besoin d'une solution universelle.

Toute aide est grandement appréciée, merci.

Répondre

1

Assurez-vous d'abord que votre formulaire de contact a le code HTML <input name='your-name' ...> Ensuite, essayez de placer votre code dans un événement window.onload. Votre javascript est probablement en cours d'exécution avant que la page ait fini de charger tout, y compris votre formulaire de contact.

Quelque chose comme ceci:

<script type="text/javascript"> 
window.onload = function() { 
    document.getElementsByName("your-name")[0].value = "<?php $current_user->user_email ?>"; 
} 
</script> 

Edit: fixe selon les commentaires ci-dessous

+0

Merci pour la réponse, mais cela ne fonctionne pas. J'ai également veillé à ce que le champ de saisie généré par le formulaire de contact 7 ait pour nom "your-name". –

+0

Quel navigateur utilisez-vous? Si Firefox ou Chrome, utilisez Firebug ou la console Javascript intégrée sur l'un d'entre eux, et tapez ce 'document.getElementByName (" votre-nom "). Value =" abc ";' Si cela ne fonctionne pas, alors essayez et Définissez un ID sur votre tag . Comme ''. Faites maintenant 'document.getElementById (" votre-nom "). Value =" abc ";'. Si aucun de ces travaux, alors vous devrez poster plus de votre code de page pour voir ce qui se passe. – arunkumar

+0

J'ai utilisé la console sur chrome et ça n'a pas l'air de marcher. Il a cependant fonctionné quand j'ai entré getElementById ("theId"). Value = "abc" ;. Enfait, getElementByName ne semble même pas être une fonction, car la seule recherche que j'ai préformée est venue avec getElementsByName (notez le "s") et cette fonction semble seulement retourner la valeur, ne pas me laisser la changer. Je suppose que maintenant ma question serait comment je peux accéder à la propriété de nom d'un formulaire? –