Avatar billede finn-l Nybegynder
20. september 2002 - 02:16 Der er 18 kommentarer og
1 løsning

Fange en værdi i en URL og indsætte i et felt

Jeg har en værdi i en url jeg godt kunne tænke mig at fange og indsætte i et form felt.

URL'en ser sådan ud:

http://xxx.xxx.xx.xx/site/FMPro?-db=mydatabase.fp3&-format=reply.htm&-lay=CGI&-max=1&-recid=1&-find=&transact=123456&param=

Det er transact værdien jeg gerne vil fange (og helst også param værdien, men den er oftest tom/blank) og indsætte i et felt.

Da jeg ikke har en levende idé om Javascript, håber jeg at der er en her der kan give mig et (eller flere) eksempler på hvordan den kan lade sig gøre?

På forhånd tak.

Finn

P.S. Da der på siten ikke kan bruges ASP/PHP skal det derfor være en ren javascript løsning.
Avatar billede limemedia Nybegynder
20. september 2002 - 04:45 #1
Det her virker
---

<script language="JavaScript" type="text/javascript">
<!--
    function QueryString(key) {
        var value = null;
        for (var i=0;i<QueryString.keys.length;i++) {
            if (QueryString.keys[i]==key) {
                value = QueryString.values[i];
                break;
            }
        }
   
        return value;
    }
   
    QueryString.keys = new Array();
    QueryString.values = new Array();
   
    function QueryString_Parse() {
        var query = window.location.search.substring(1);
        var pairs = query.split("&");
   
        for (var i=0;i<pairs.length;i++) {
            var pos = pairs[i].indexOf('=');
            if (pos >= 0) {
                var argname = pairs[i].substring(0,pos);
                var value = pairs[i].substring(pos+1);
                QueryString.keys[QueryString.keys.length] = argname;
                QueryString.values[QueryString.values.length] = value;       
            }
        }
    }
   
    QueryString_Parse();
//-->
</script>

Transact : <script language="JavaScript" type="text/javascript">document.write( QueryString("transact") );</script><br>
Param : <script language="JavaScript" type="text/javascript">document.write( QueryString("param") );</script>
 

jeg har testet det online på
http://ljweb.dyndns.org/test/jsparam.html?-db=mydatabase.fp3&-format=reply.htm&-lay=CGI&-max=1&-recid=1&-find=&transact=123456&param=

Udelukkende JavaScript er anvendt


/ LJ
www.ljweb.com
Avatar billede bamzen Nybegynder
20. september 2002 - 07:52 #2
Hej Finn,

jeg mener da ellers at du i LDML sproget kan hente variablen direkte....

Husk når du bruger javascript på en side der er genereret serverside, vil du ikke kunne bruge javascript resultatet på den nuværende side, først hvis du smider den med til den næste....

Hvis du har et feld på din form der har værdien, er det klart det nemmeste for dig at sætte værdien i det felt, og hente det fra det felt.
Avatar billede bamzen Nybegynder
20. september 2002 - 07:58 #3
Samtidig er jeg også sikker på at ljweb's forslag sikkert vil virke, hvis det er det du er ude efter,,,, han plejer at lavet kvali js
Avatar billede nikolajdu Nybegynder
20. september 2002 - 07:59 #4
Eller en anden variant :

<html>
<head>

<SCRIPT TYPE="text/javascript">

alert(this.location)


n = new String(this.location);
split = n.split("?");
n = new String(split[1]);
split = n.split("&");
getvar = new Object();
for(i=0; i < split.length; i++){
n = new String(split[i]);
vaerdi = n.split("=");
getvar[vaerdi[0]] = vaerdi[1];
}

if(n!="undefined"){
alert(vaerdi[1]);

document.write(n)
}
</SCRIPT>

</head>
<body>

<form action="urlSearch2.html" method="get">
<input type="text" name="action" value="">
<input type="submit" value="Test mig">
</form>

</body>
<html>

Du behøver hverken alert() eller formen hvis du overfører parametre på en anden måde. parametret her hedder action = .... og du får variablen n ud.

/NIkolaj
Avatar billede bamzen Nybegynder
20. september 2002 - 08:20 #5
Har du kigget på din tag [FMP-currenttoken]

Det er den fmp bruger til at holdestyr på at det er samme transaktion

Tjek den ud, tror bestemt det er hvad du har brug for....
Avatar billede bamzen Nybegynder
20. september 2002 - 08:23 #6
og undskyld, jeg mente naturligvis CDML sproget tidligere, og ikke LDML
Avatar billede limemedia Nybegynder
20. september 2002 - 08:26 #7
bamzen >> undskyld mig - du lyder som om hans url siger dig ret meget mere end spørgsmålet går ud på... ?
Avatar billede bamzen Nybegynder
20. september 2002 - 08:32 #8
ljweb, det gør det også,  jeg kan se at han sidder med en filemaker pro database....... samtidig kan jeg gætte hvem det er da det er en finn-l, en person jeg for en række år siden lavede en filemaker workshop med... Han har hans site som er powered af filemakers web companion/eller lasso plugin til hans webserver, hvorfor han ikke har asp, ellerphp til rådighed, men CDML

CDML var det sprog jeg startede med for 6-7 år siden... den gang det kun fandtes som et plugin der hed Lasso, version 1.x

/Martin
Avatar billede limemedia Nybegynder
20. september 2002 - 08:34 #9
hehe, kunne ikke finde hoved eller hale i dine indlæg, så det måtte stikke noget dybere bagved :) har aldrig selv arbejdet med de teknikker, så jeg vidste ikke helt hvordan og hvorledes.
Avatar billede bamzen Nybegynder
20. september 2002 - 08:38 #10
uden at vide det, tror jeg det er den tag [fmp-currentToken] han leder efter, da han så holder sig serverside, hvilket gør nogle ting noget lettere....

Men jeg forstår kun glimrende din forundring.....

Dog mener jeg at det gælder om at hjælpe så godt man kan, ikke?

Det er lidt ligesom med kunder, ikke altid det de siger de vil have er lig med det de beder om
Avatar billede nikolajdu Nybegynder
20. september 2002 - 08:39 #11
Lasso - Nu er jeg da først forvirret *LOL*
Avatar billede limemedia Nybegynder
20. september 2002 - 08:45 #12
bamzen >> jo uha - og helt korrekt at en kunde ofte bestiller i øst og forventer en løsning i vest... Det er så vores opgave at holde tungen lige i munden hele vejen igennem processen.
Avatar billede bamzen Nybegynder
20. september 2002 - 08:46 #13
Ok, mange har sikkert hørt om filemaker databaser, som modsat access er fuldt mac kompatibelt... (lavet til mac først).

En dag for mange år siden var der et lille firma der synes det kunne være fedt af få lavet et plugin til webservere, så man kunne læse,skrive og manipulere med filemaker data via web. Så satte de sig ned og skrev et cgi der hed Lasso, som kunne det her....

På et tidspunkt syntes filemaker at det var så fedt et program at de købte rettighederne til en lidt ældre udgave, som de så omskrev lidt,
for derefter at kalde den webcompanion. I samme ombæring indbyggede de en lille webserver deri, og vupti kunne filemaker bruges til web
som rent standard produkt.

Så vidt jeg husker, har firmaet der lavede lasso fortsat, og videreudviklet moduler til databehandling via nettet

Vil tro at det er det firma man finder når man finder  http://www.lasso.com
Avatar billede bamzen Nybegynder
20. september 2002 - 08:53 #14
sorry, url'en var forkert

det var

http://www.blueworld.com
Avatar billede finn-l Nybegynder
20. september 2002 - 11:59 #15
ljweb > Det ser ud til at i store træk at virke, men jeg mangler det afgørende "skub" nemlig hvordan indsættes værdierne i et form felt (i mit tilfælde bliver det et skjult felt)? Så vidt jeg kan se ud fra dit script skrives der direkte på siden og ikke i et formfelt?

bamzen > Jeg kan desværre ikke bruge [fmp-currentToken] eller lignende da værdierne kommer udefra en ekstern server og bliver indsat sidst i url'en, og dermed efter FMP's &-find operator - hvilket gør at FMP ikke kan se værdierne (ellers havde det jo været nemt nok ;-) ). Jeg kan heller ikke bruge &-edit da FMP så ikke forstår url'en.

Finn
Avatar billede bamzen Nybegynder
20. september 2002 - 12:03 #16
Hej igen Finn,

For at få hans eksempel til at virke med dit hidden field skal du skrive


    QueryString_Parse();
document.forms[0].DitHiddenFeltsNavn.value=QueryString("param")
Avatar billede bamzen Nybegynder
20. september 2002 - 12:07 #17
finn, men det undrede mig også......... for fmp-currenttoken er jo ret simpel........ og den burde du jo kende alt til.....
Avatar billede limemedia Nybegynder
20. september 2002 - 12:08 #18
ja, eller
<script language="JavaScript" type="text/javascript">document.write('<input type="hidden" name="transact" value="'+QueryString("transact")+'">');</script>
<script language="JavaScript" type="text/javascript">document.write('<input type="hidden" name="param" value="'+QueryString("param")+'">');</script>
Avatar billede finn-l Nybegynder
20. september 2002 - 12:43 #19
ljweb > Perfekt! Nu virker det og databasen fanger værdien korrekt :-) Mange Mange Tak!!!

bamzen > [fmp-currentToken] kan jeg som nævnt desværre ikke bruge da den del der har med transact og param at gøre er ikke en del af FMP, men kommer fra en ekstern server som respons på en forespørgelse via FMP. Da returværdierne står efter FMP operatoren kan FMP ikke se/forstå dem og tanken var så at javascript nok kunne fange værdierne i hidden fields og sende dem videre til FMP (hvilket så også lykkes).

P.S. Jeg fik din mail forleden, og sendte også et svar retur. Det blev dog returneret af et Auto Svar. Kig evt. en dag forbi til en kop kaffe og en sludder…

Finn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester