Hoe sluis ik variabelen van pagina naar pagina?

Status
Niet open voor verdere reacties.

Uturn

Gebruiker
Lid geworden
7 apr 2009
Berichten
100
Ik heb een script geschreven dat de resultaten in een tabel weergeeft met in de laatste kolom aankruisvakjes zodat de gebruiker elementen kan selecteren. Ik laat JavaScript eigenlijk een HTML-formulier schrijven met document.write, dit werkt allemaal, ik kan inlezen welke hokjes zijn aangekruist.

De essentie van de functie waar het om gaat:

function ResultsTabel() {
document.write("<html><head>");
document.write("<script type='text/javascript' src='SelectScripts.js'></script>");
document.write("</head><body>");
document.write("<form name='ResultaatTabel'>");

.....

document.write("</table><br>");
document.write("<input type='button' value='Verzend' onClick='AnalyseSelection()'>");
document.write("<input type='reset' value='Reset'>");
document.write("</form></body></html>");
}

De HTML-pagina die door het script wordt gegenereerd verwijst in de <head> naar SelectScripts.js waarin ik het formulier wil verwerken met scripts, maar ik weet niet hoe ik de de variabelen van de JS-file waar deze functie in staat moet doorsluizen naar SelectScripts.js.
Heeft iemand een tip?
 
je hoeft niks door te sluizen, als je dit hebt gedaan:
<script type='text/javascript' src='SelectScripts.js'></script>

zijn alle functies en variabelen die daarin staan gewoon beschikbaar op je pagina. Dus stel je hebt een functie genaamd mailForm() in je SelectScript.js dan kun je die gewoon aanroepen alsof hij in je html pagina is gedefinieerd.
 
Ha ja,
Maar het gaat juist om de globale variabelen die in de file staan waarin deze document.write de HTML-pagina schrijft, die staan niet in SelectScripts.js. En wanneer ik die gebruik in een script van SelectScripts.js dan krijg ik een foutmelding ('undefined').
 
Voor zover ik weet kan je variabelen doorsluizen via je URL, met een ? en &. Je hebt het vast wel al hier en daar gezien, het is bv:
Code:
http://www.mijnsite.com/Pagina.htm?Var1=Foo&Var2=Bar
Om die variabelen in de URL dan ook effectief te kunnen gebruiken kan je dingen afleiden uit document.location.href, met wat charAt en indexOf magie.
Hier staat er bijvoorbeeld een mooi scriptje om dat te doen: http://snipplr.com/view/799/get-url-variables/
 
Hoi,

Is PHP GET variabele geen overweging? Die kun je heel gemakkelijk uitlezen. Bijvoorbeeld de link naar de nieuwe pagina: http://voorbeeld.nl/pagina.php?waarde=dit
en dan in je php code van pagina.php:
Code:
$waarde = $_GET['waarde'];

Maar er zijn ook redenen om het alleen met javascript te doen. Ik heb dit laatst in een project gebruikt waarin alle pagina's in een bestand staan, en javascript veranderd daar de inhoud zodra je op een navigatielink klikt. Komt op hetzelfde neer eigenlijk; ik wilde dat als je met een link als http://voorbeeld.nl/index.html#contact binnenkomt dat er dan ook echt het contact gedeelte wordt weergegeven door #contact uit te lezen uit de link.

Dan nu de details die ik gebruikt heb. Je kijkt met javascript vooral naar document.location.hash ; dit object geeft alles terug wat achter het hekje (hash-teken) staat. Dus bij http://voorbeeld.nl/index.html#contact geeft document.location.hash = '#contact' . Je ziet misschien al waar ik heen wil. Je kunt de variabelen dus eventueel doorgeven via de link met het hekje.
Meerdere variabelen zou je kunnen doorgeven door een scheidingsteken te 'verzinnen', en daarna het zaakje op te splitsen met de .split() methode.

Korte samenvatting:
Het is mogelijk om 'variabelen' via javascript in de url door te geven, maar het is wel een omweg. Dit stukje code zou moeten helpen:
Code:
// voorbeeld met inkomende link: http://voorbeeld.nl/index.html#variabele_nogeen_ennogeen

var linkVariabele = window.location.hash; // linkVariabele = #variabele_nogeen_ennogeen
var linkVariabele = linkVariabele.split('#'); // geeft een rij waarin de # als scheidingsteken gebruikt wordt, linkVariabele = ' ', 'variabele_nogeen_ennogeen'
var linkVariabele = linkVariabele[1]; // pakt de tweede plek uit de rij, linkVariabele = 'variabele_nogeen_ennogeen'
var linkVariabele = linkVariabele.split('_'); // splitst met scheidingsteken _, linkVariabele is nu een rij met de waarden 'variabele', 'nogeen', 'ennogeen'

/*
Je hebt nu een rij met je doorgegeven variabelen, uit http://voorbeeld.nl/index.html#variabele_nogeen_ennogeen is ontstaan:
linkVariabele[0] = 'variabele';
linkVariabele[1] = 'nogeen';
linkVariabele[2] = 'ennogeen';
*/

Ik hoop dat dit een zetje in de goede richting geeft.


Mvg,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan