2011-11-30 4 views
0

Nous avons un certain nombre de clients qui ont accepté de nous envoyer leurs données de formulaire une fois qu'un formulaire est soumis sur leur site. Est-ce possible et quelle est la meilleure façon de gérer cela? Notre site est construit en coldfusion alors que le site client varie.recueillir des données à partir d'un formulaire hébergé sur un autre site

J'ai demandé au client d'ajouter une balise de script pour inclure un fichier javascript de notre serveur sur sa page de formulaire. Ont également eu ajouter un événement onClick à leur bouton de formulaire afin que ce javascript est appelé sur la soumission de leur formulaire.

Ceci est le fichier javascript:

function cpcshowElements(f) { 
var formElements = ""; 
for (var n=0; n < f.elements.length; n++) { 
    box = f.elements[n]; 
    formElements += box.name + ":" + f.elements[n].value + ",\n"; 
} 
var track = new Image(); 
/*send data to us*/ 
track.src="http://XXX.net/form_record.cfm?form="+ formElements + "&self=" + this.location; 
} 

Le formulaire de soumission de la fonction cpcshowElements est appelée, formate les données de formulaire, il ajoute à la fin de l'XXX.net/...and appelle cette URL. La page form_record.cfm effectue certaines vérifications et insère les données dans une table.

Ce processus fonctionne, mais pas systématiquement. Les données ne le font pas toujours dans la base de données. C'est le problème. Existe-t-il un autre moyen de le faire sans perte de données?

+0

Comment transférez-vous les résultats de formulaire sur plusieurs domaines? – mattacular

+0

@mattacular Ressemble à une requête GET simple lorsque javascript définit la source de l'image. Ancienne technique pour envoyer des données encore utilisées aujourd'hui parce que cela fonctionne. Big trou noir avec ce problème est le serveur à l'autre bout. Aucune garantie qu'ils l'installent où il doit aller. En outre, si le formulaire est soumis en tapant 'enter' alors' onClick' ne se déclenchera pas. Doit être 'onSubmit' –

+0

Tout le code est stocké sur notre serveur - la page .js (code ci-dessus) et la page xxx.net/form_record. La seule chose que fait le client est d'inclure la page .js sur sa page de formulaire et d'ajouter l'appel onClick. J'ai mis en place l'appel à la page de traitement (form_record.cfm) dans le js comme une image de pixel afin que la page devrait être appelée et les données devraient être insérées dans le db. – user1073840

Répondre

2

Les données accédant à la base de données sont assez loin dans la chaîne. La première étape consiste à déterminer où la demande ne passe pas. Trouvez le lien faible, puis corrigez cette partie.

Les chances sont, il y a d'autres problèmes provoquant l'échec que ce morceau de javascript. Testez chaque partie du processus et déterminez où se situe le problème. Les chances sont, ce n'est pas dans le javascript.

2

Vérifier si le formulaire sur le service est soumis par une méthode autre que onClick. Si le formulaire peut être soumis en appuyant sur enter ou en tapant et en appuyant sur enter ou sur la barre d'espace, il vous manque des soumissions. Serait plus cohérent avec onSubmit plutôt que onClick.

Exemple:

<form onsubmit="your_function_here"> 

En outre, si la forme soumet, puis de passer à une autre page, vous ne pouvez pas le code javascript assez de temps pour tirer. Dans ce cas, placez un délai dans votre fonction pour permettre à la demande GET pour l'image d'être faite avant l'évaporation de la page.

Questions connexes