Ok, jeg prøvede at lave noget, men jeg har brugt en del ting, som kun er kompatibelt med Internet Explorer.
Lad os sige at et site allerede har en form:
<form action="dosomething.asp">
<input type="text" name="name"><br>
<input type="text" name="email"><br>
<input type="submit" value="submit">
</form>
Du bliver nødt til at stille det krav, at felterne hedder præcist "name" og "email". Samtidig skal formen ( <form> )være den første på siden.
På sitet skal der tilføjes et script tag og en input-checkbox, så det kommer til at se sådan her ud:
<script type="text/javascript" src="
http://www.DINSERVER.dk/formscript.js"></script><form action="dosomething.asp">
<input type="text" name="name"><br>
<input type="text" name="email"><br>
<input type="checkbox" name="tredjepartOk"> Tredjepart?<br>
<input type="submit" value="submit">
</form>
På din egen server (
www.DINSERVER.dk) skal du lægge en javascript fil op - formscript.js.
Den ser sådan her ud:
***formscript.js***
var intervalID;
var myForm;
var i = 0;
window.onload = function (){
myForm = document.forms[0];
myForm.onsubmit = function (){
if( myForm.tredjepartOk.checked ){
var myImage = document.createElement("<img id='" + document.uniqueID + "' style='display:none;'>");
document.body.insertBefore(myImage);
myImage.src = "
http://www.DINSERVER.dk/serverscript.php?name=" + myForm.name.value + "&email=" + myForm.email.value;
intervalID = window.setInterval("submitWhenComplete('" + myImage.id + "')", 200)
return false;
}
else{
return true;
}
}
}
function submitWhenComplete( imgID ){
myImg = eval('document.all.' + imgID);
i++;
if( myImg.complete || i>=20 ){
window.clearInterval(intervalID);
myForm.submit();
}
}
***/formscript.js***
Hvis 3.part-checkboksen er sat, vil formen nu først sende data til
http://www.DINSERVER.dk/serverscript.php. Det er lavet sådan at den får max 2 sekunder til dette (burde være rigeligt), ellers submitter den siden videre. Hvis du i dit serverscript.php slutter af med at udskrive et dummy-billede, vil det som regel gå hurtigere end 2 sekunder.
Jeg ved godt det ser lidt underligt ud med billeder og ting - men det er een måde at submitte one-way-data på uden at skulle forlade en side, eller gøre det via en anden frame.
I mit eksempel hed dit serverscript "serverscript.php" - du kunne selvfølgelig være asp eller et andet sprog også. Det er i dette script du skal behandle brugerdata til dig eget brug.
Jeg lavede et lille test php script som bare skrev "name" og "email" ned i en tekst-fil.
***serverscript.php***
<?php
$filename = 'foo.txt';
$content = $_GET['name'] . ":" . $_GET['email'];
if (!$handle = fopen($filename, 'w')) {
print "Cannot open file ($filename)";
exit;
}
if (!fwrite($handle, $content)) {
print "Cannot write to file ($filename)";
exit;
}
fclose($handle);
header ("Content-type: image/png");
$im = @imagecreate (50, 100);
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 1, 5, 5, "Dummy image", $text_color);
imagepng ($im);
?>
***/serverscript.php***
Var det sådan noget du var ude efter?