JS gevorderde |
|
Hey Kite,
Ten eerste de afbeelding, deze is al aanwezig neem ik aan ? als dit niet het geval is zal het onmogelijk worden de afbeelding weer tegeven aangezien er geen mogelijkheid bestaat om met alleen javascript de afbeelding te ontvangen en verwerken.
Wat betreft de rest Kan je het als volgt maken. Bij het versturen van het formulier word er naar een javascript functie gerefereerd in plaats van een gewone form submit.
Verder kan ik je aanbevelen om met DIVs te werken dit zal de structuur drastisch vereenvoudigen. Bijvoorbeeld :
<div id='form'>
<form>
<fieldset>Naam : <input name='naam' /></fieldset>
......
</form>
</div>
<div id='profile'>
<span>Naam: </span> bla...
......
</div>
<div id='form'> <form> <fieldset>Naam : <input name='naam' /></fieldset> ...... </form> </div> <div id='profile'> <span>Naam: </span> bla... ...... </div>
Voor het verwerken van het formulier zou ik in eerste instantie de CSS opmaken van de 2 DIVS. dus `profile` word bij initalisatie verborgen terwijl form weer gegeven word:
div#form {
display : block;
visibility : visibile;
}
div#profile {
display : none;
visibility : hidden;
}
div#form { display : block; visibility : visibile; } div#profile { display : none; visibility : hidden; }
Voor het formulier verwerken lijkt het me ten eerste wijs om een validate te gebruiken, hier ga ik geen voorbeeld van geven deze lijken me overal te vinden.
dus : (de link om het formulier te versturen is dus : href='Javascript:Form_Check();'
function Form_Check() {
/* Check document.forms[0].element[0] != 'la' etc.. */
/* na een aantal checks die goed gekeurd zijn : */
Create_Profile;
}
function Create_Profile() {
var naam = document.forms[0].elements[0];
var naamcode = docuement.forms[0].elements[1];
/* etc.. */
var profile = document.getElementByID('profile').innerHTML;
profile += "<span>Naam: </span>"+naam+"<br />";
profile += "<span>code: </span>"+naamcode+"<br />";
/* etc. */
/* nu alleen nog weer gaven switchen en naar bestand schrijven */
document.getElementByID('form').style.visibility = 'hidden';
document.getElementByID('form').style.display = 'none';
document.getElementByID('profile').style.visibility = 'visibile';
document.getElementByID('profile').style.display = 'block';
Write_File(profile, naamcode);
}
/* jaja... Helaas ActiveX nodig voor deze functionaliteit */
function Write_File(in, naamcode)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("X:\\'+naamcode+'.html", true);
s.WriteLine(in);
s.Close();
}
function Form_Check() { /* Check document.forms[0].element[0] != 'la' etc.. */ /* na een aantal checks die goed gekeurd zijn : */ Create_Profile; } function Create_Profile() { var naam = document.forms[0].elements[0]; var naamcode = docuement.forms[0].elements[1]; /* etc.. */ var profile = document.getElementByID('profile').innerHTML; profile += "<span>Naam: </span>"+naam+"<br />"; profile += "<span>code: </span>"+naamcode+"<br />"; /* etc. */ /* nu alleen nog weer gaven switchen en naar bestand schrijven */ document.getElementByID('form').style.visibility = 'hidden'; document.getElementByID('form').style.display = 'none'; document.getElementByID('profile').style.visibility = 'visibile'; document.getElementByID('profile').style.display = 'block'; Write_File(profile, naamcode); } /* jaja... Helaas ActiveX nodig voor deze functionaliteit */ function Write_File(in, naamcode) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var s = fso.CreateTextFile("X:\\'+naamcode+'.html", true); s.WriteLine(in); s.Close(); }
Voor het ActiveXobject heb je Internet explorer nodig. Ook is het zo dat sinds SP 2 veel beveiligd is. Dit zal er in resulteren dat je een bericht krijgt dat je 'n onveilig script wil uitvoeren en of IE hiermee door wil gaan (gelukkig maar). Dit zal wel lastig zijn denk ik voor de eindgebruikers, maar helaas is er geen andere manier om met javascript bestanden te schrijven aangezien het clientside is..
Om de bestanden weg te schrijven dienen de gebruikers een netwerkschijf te hebben dus stel je wil alles in \\server\web_troep opslaan dan dienen de gebruikers een netwerk schijf te hebben op zijn minst naar \\server. |