Just nu i M3-nätverket
Gå till innehåll

js-variable till url


jan-erik

Rekommendera Poster

Om jag i en js-funktion har en variable jsvar, kan jag då i samma funktion skapa en ny url med jsvar som parameter?

alltså nåt i stil med:

 

document.write('<a href="p2.php?flt=jsvar"></a>');

 

Länk till kommentar
Dela på andra webbplatser

tack så väldigt mycket, Moon! Det blir poäng.

 

Skulle du oxå kunna hinta mej hur jag ska göra för att jag i samma funktion ska få jsvar att bli en php-variable?

 

Länk till kommentar
Dela på andra webbplatser

Det kan du inte göra i en javscriptfunktion. Du måste skilja på var javascript och php körs. PHP körs på servern och javascript i webbläsaren. För att hämta data som skickats via URL:en som du nu gjort använder du på server-sidan/php variabeln $_GET["flt"] för att hämta värdet som jsvar hade när den låg i webbläsaren och som du infogade i din querystring (querystring är allt som kommer efter ? i url:en).

 

Länk till kommentar
Dela på andra webbplatser

Du har ju querystring-variabeln flt som innehåller värdet.

Då kan du ju bara ta emot det på sidan med $_GET['flt'].

 

Eller missuppfattar jag dig?

 

OT: Vad snabb du var idag Anjuna, trodde inte du var så "tränade"... ;)

 

[inlägget ändrat 2008-02-04 15:03:57 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Ni kommer att bli poängade båda när detta funkar. Jag har förstått vad ni menad med att skpa GET-variabler med hjälp av en querystring, och har nu följnade funktion:

 

<script type="text/javascript">
function onsbm(ntxt,mix1)
 {  
 alert (mix1+ntxt);
 document.write('<a href="onsbm2.php?flt='+mix1+ntxt+'">forts</a>');
 }
</script> 

 

Alerten ligger där för att jag skall kolla att jag får in mina variabler. Jag har som ni ser två variabler, och har valt att slå ihop dessa, även om det givetvis skulle gå att ta dom var för sig. Jag har kollat att jag får in värdena i onsbm2 precis som förväntat.

 

Men, jag vill ju att detta ska göras utan att jag behöver skicka en gång till, dvs jag vill ju inte ha upp länken "forts". Och man kan tydligen inte bara skippa texten. Hur löser man detta?

 

Länk till kommentar
Dela på andra webbplatser

Du menar att funktionen ska göra så att onsbm2.php?flt='+mix1+ntxt+ ska visas i webbläsaren!?

 

Ändra då till:

function onsbm(ntxt,mix1)   {  
if(ntxt&&mix1) {
var konStr=ntxt+mix1;
window.location="onsbm2.php?flt="+konStr;
}
}

 

[inlägget ändrat 2008-02-04 17:37:08 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Jag har tyvärr tappat dig nu. Beskriv steg för steg vad det är du försöker uppnå, för just nu känns det fortfarande lite oklart.

 

Länk till kommentar
Dela på andra webbplatser

Faktum är att jag arbetar mig fram bit för bit, och har ganska klart för mig både vad jag vill och vad jag gör. Men just nu är det en massa lösa trådändar som en följd av allt experimenterande, och jag är helt enkelt inte i stånd att ge er en kod som är begriplig. Men om jag nu bara får fixat detta med länken så vet jag hur jag ska skyffla över alla mina variabler till onsbm2, och då är det dags att storstäda o plocka ut dom bitar jag ska behålla. och då ska ni få se!

Faktum är att jag inte tror det är några fler hinder på vägen nu efter tipset om window.location!

 

 

Länk till kommentar
Dela på andra webbplatser

trodde det var öppna gatan, men det verkar som om onsbm2 inte kommer med riktigt. Det är skälogen enkelt, ser ut så här:

 

<? 
echo '********************************';
$flt = $_GET["flt"];
echo "...".$_GET["flt"];
exit;
?>

 

funktionen ser ut så här:

 

<script type="text/javascript">
function onsbm(ntxt,inlnr)   { 

if(ntxt&&inlnr) {
var konStr=inlnr+ntxt;
alert(konStr);
window.location="onsbm2.php?flt="+konStr;
}
}
</script> 

 

alerten visar att ïnlnr och ntxt kommer in precis som dom ska.

 

Men jag får inga som helst livstecken från onsbm2.

 

Länk till kommentar
Dela på andra webbplatser

Men jag får inga som helst livstecken från onsbm2.

Skriver den inte ens ut raden med asterisker? För koden är korrekt (och jag har tillochmed testat den själv för säkerhetsskull så det inte är några felaktigheter jag missat)

 

Länk till kommentar
Dela på andra webbplatser

nä, faktiskt inga som helst livstecken från onsbm2.php. genom alerten kan kag se att konStr är ok, och det skulle ju inte sppela nån roll för utskrift av astersikraden.

 

Länk till kommentar
Dela på andra webbplatser

nä, faktiskt inga som helst livstecken från onsbm2.php

Då är något annat fel på din php-sida. Gå in i Visa->Källkod i din webbläsare och titta hur den ser ut. Ibland göms felmeddelanden där som inte visas i webbläsarfönstret.

 

Länk till kommentar
Dela på andra webbplatser

inte ens om jag ändrar i windows location till ett program som inte finns märks det nåt.

Titta i felkonsollen (Firefox) eller dubbelklicka på en eventuell gul triangel i nedre vänstra hörnet (IE) för att se om du har några javascriptfel. Hur ser din exakta js-funktion ut nu?

 

Länk till kommentar
Dela på andra webbplatser

<script type="text/javascript">
function onsbm(ntxt,inlnr)   { 
//alert(ntxt);
//alert(inlnr);
if(ntxt&&inlnr) {
var konStr=inlnr+ntxt;
alert(konStr);

window.location="http://www.jea.se/a/onsbm2x.php?flt="+konStr;
}
}
</script> 

 

Länk till kommentar
Dela på andra webbplatser

alert(konStr) skriver ut helt rätt, så det verkar ju som om det är rätt så långt. onsbm2x finns uppladdad, och jag har angett hela adressen.

 

Länk till kommentar
Dela på andra webbplatser

när jag kör onsbm2x direkt så skriv asteriskerna ut. Så därmed är väl problemet ganska inringat´, i o med att alerten oxå visar rätt?

 

 

Länk till kommentar
Dela på andra webbplatser

Vad får du fram om du testar att skapa en variabel med länken och sen alerta den i din funktion?

 

var strUrl="http://www.jea.se/a/onsbm2x.php?flt="+konStr;
alert(strUrl);

[inlägget ändrat 2008-02-04 19:47:14 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

det ser alldeles korrekt ut. slutar med onsbm2x.php?flt=79xxxxxx

vilket är precis som det ska

 

 

Länk till kommentar
Dela på andra webbplatser

Och vad står det i adressfältet i webbläsaren när du kört funktion med window.location=...?

 

Länk till kommentar
Dela på andra webbplatser

jan-erik: felet ligger i att du lagt anropet till din javascriptfunktion i din onsubmit. Varför gör du det? Vad som än sker där, även om du ändrar window.location, så kommer submit:en att utföras som sista steg och du kommer att sluta på den sida formuläret valt att posta (i ditt fall samma sida som formuläret ligger)

 

Så var det med det =)

 

Länk till kommentar
Dela på andra webbplatser

Misstänkte just det att det inte var rätt sida som dök upp och anledningen har du redan fått ;)

 

Har inte alls kollat källkoden i din sida men om du nu tvunget ska använda ett fomulär så lägg inte url:n i formulärets action-tagg och submita det. Formuläret har t ex id="form":

document.getElementById("form").action=strUrl;

[inlägget ändrat 2008-02-04 20:13:33 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...