Just nu i M3-nätverket
Jump to content

js-variable till url


jan-erik

Recommended Posts

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>');

 

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

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).

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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!

 

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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)

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

<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> 

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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?

 

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

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 =)

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...