собирать данные из формы, размещенной на другом сайте - PullRequest
0 голосов
/ 30 ноября 2011

У нас есть ряд клиентов, которые согласились отправить нам свои данные формы после того, как форма отправлена ​​на их сайт.Возможно ли это и как лучше всего справиться с этим?Наш сайт построен в Coldfusion, в то время как клиентский сайт меняется.

Я попросил клиента добавить тег сценария, чтобы включить файл javascript с нашего сервера на страницу формы.Также они должны добавить событие onClick к кнопке формы, чтобы этот javascript вызывался при отправке их формы.

Это файл 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;  
}

При отправке формы функция cpcshowElementsПозвонил, форматирует данные формы, добавляет их в конец XXX.net/... и вызывает этот URL.Страница form_record.cfm в основном выполняет некоторые проверки и вставляет данные в таблицу.

Этот процесс работает, но не всегда.Данные не всегда попадают в базу данных.Это проблема.Есть ли другой способ сделать это без потери данных?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Проверьте, отправляется ли форма на подачу другим способом, чем onClick. Если форма может быть отправлена ​​нажатием enter или табуляции и нажатием enter или пробелом, то вам не хватает некоторых отправок Будет работать более согласованно с onSubmit, а не onClick.

Пример:

<form onsubmit="your_function_here">

Кроме того, если форма отправляется и затем переходит на другую страницу, у вашего кода javascript может не хватить времени для запуска. В этом случае добавьте задержку в вашу функцию, чтобы GET-запрос изображения выполнялся до испарения страницы.

2 голосов
/ 30 ноября 2011

Данные, поступающие в базу данных, довольно глубоко в цепочке. Первый шаг - выяснить, куда не приходит запрос. Найдите слабое звено и исправьте его.

Скорее всего, есть другие проблемы, вызывающие сбой, чем этот кусок JavaScript. Протестируйте каждую часть процесса и выясните, в чем проблема. Скорее всего, это не в JavaScript.

...