Just nu i M3-nätverket
Jump to content

js-variable till url


jan-erik

Recommended Posts

ok, jag förstår vad ni menar.

 

jag har inte en, utan 10 st input/submit+tillhörande textareor, och för att kunna avgöra vilken av dessa 10 jag valt så tyckte jag att det var naturligt att använda onsubmit.

titta här.

www.jea.se/a/onsbmtst.php klicka i nån av textareorna

 

Link to comment
Share on other sites

Länken stämmer inte...

 

Blir bara:

Tyvärr, något tycks ha blitt lite fel. Kontakta Jea!

 

e saknades i länken :)

 

Ta bort omsubmit-händelsen.

Ändra knapparna till typen button.

Skciak med dem unika värdena/parametrarna i funktionsanropet som du lägger på Varje knapp i en onclick-händelse.

Lägg in rätt url i formulärets action-tagg som jag visade innan.

Submita formuläret med:

document.getElementById("form").submit();

 

Sen tror jag det ska fungera utan att ha gått igenom hela din kod.

 

[inlägget ändrat 2008-02-04 20:22:23 av Micke_skane]

Link to comment
Share on other sites

Det ändra mycket, då kommer du submita formuläret med en url som du dynamiskt skapar med hjälp av parametrarna du skickar in i funktionen.

 

Jag kan iof fattat fel på hur din sida är uppbyggd ;)

 

Link to comment
Share on other sites

Micke, kan du förtydliga detta?

 

Lägg in rätt url i formulärets action-tagg som jag visade innan.

Submita formuläret med:

document.getElementById("form").submit();

 

 

 

Link to comment
Share on other sites

Det funkar fanimej!

jag flyttade över all variablehnatering och funktionsanrop till inputknappen, som jag ändrade till button efter dina anvisningar. Nu får jag snyggt o prydligt över allt till insbm2x!!!!!!!!!

 

Hur många poäng vill du ha?

 

 

Link to comment
Share on other sites

ja, det ska säkert gå bra nu.

även om det funkar bra med "location" så är det tydligen ändå så att det är vissa problem med spaces, och att lla info ligger i url.

Jag är nyfiken på detta med att skapa hidden-fält från js-variabler.

Det borde kunna gå med nåt i stilen

<? $hidvar="<script>document.write.jsvar;</script>"

 

eller nåt?

 

Link to comment
Share on other sites

Du menar att du vill lägag in värdena i ett antal hidden-fält och sen på serversidan hämta upp dessa med $_POST['hiddenflt1'] och $_POST['hiddenflt2'] osv...?

 

Det är bara att skapa hidden-fälten, ge dem unika id(och namn) och lägga in värdena som du skickar med i funktionsanropet.

Ex:

function ex(str1,str2,str3)
document.getElementById("hiddenflt1").value=str1;
document.getElementById("hiddenflt2").value=str2;
osv...

Sen kan du hämta värdena med $_POST[''].

 

[inlägget ändrat 2008-02-05 11:37:03 av Micke_skane]

Link to comment
Share on other sites

det är nästan smartare än att skicka variablerna i en sträng med window.locator?

En annan sak: Som det ligger nu så gör jag ju aldrig nån submit av formuläret. Skulla jag lägga in nåt i stil med document.tjform2.submit när jag skapar variablerna i onclick?

Fast det funkar ju ändå!

 

 

Link to comment
Share on other sites

Du får lägga in i formulärets action-taggen: tjforinlw.php

Skapa sen hiddenfälten som jag beskrev och lägga in värdena.

När allt är klart med det så kör: document.tjform2.submit();

 

Själv hade jag gjort som ovan.

 

Att det går nu är inte för att formuläret submitas utan för att sidan byts ut i webbläsaren.

 

Link to comment
Share on other sites

[color="#ff0000"]<form action="tjforinlw.php" method="post" name="tjform2" >[/color]

<input type="button" style="visibility:hidden;" value="<? echo $fid[$m]; ?>" name="submit_knapp" 
[color="#0000ff"]onClick="
var amne='<? echo $famne[$m]; ?>'; 
var fstamp='<? echo $fstamp[$m]; ?>';
var anv='<? echo $_SESSION['foranv']; ?>'; 
var mix1=<? echo $m; ?>;  
var inlnr=<? echo $fid[$m]; ?>;  
var ntxt=(document.tjform2.ftxt[mix1].value); 
sbmt(ntxt,inlnr,anv,amne,fstamp);
document.tjform2.submit();
">[/color]
[color="#ff8C00"]
<input name="hidinlnr" id="hidinlnr" type="hidden" >
<input name="hidfstamp" id="hidfstamp" type="hidden" >
<input name="hidanv" id="hidanv" type="hidden" >
<input name="hidamne" id="hidamne" type="hidden" >
<input name="hidntxt" id="hidntxt" type="hidden" >[/color]


[color="#006400"] <script type="text/javascript">
 function sbmt(ntxt,inlnr,anv,amne,fstamp)
 {
document.getElementById("hidntxt").value=ntxt;
document.getElementById("hidinlnr").value=inlnr;
document.getElementById("hidanv").value=anv;
document.getElementById("hidamne").value=amne;
document.getElementById("hidfstamp").value=fstamp;
}
</script>[/color]

 

Nu har jag följt din visa anvisningar, och det funkar så långt att hag hanar i tjforinlw.php, men desvärre har jag inga värden med mig. I detta program har jag gjort en include på ett program som avläser alla POST-varabler.

Kan du se nåt i ovanstående kodavsnitt som kan va orsaken?

 

Du kan ju köra www.jea.se/a/tjforum1.php för att se sanningen i vitögat.

 

 

 

Link to comment
Share on other sites

För att sortera upp koden lite så lägg kodblocken så här:

[log]

<head>
<script type="text/javascript">
function sbmt(ntxt,inlnr,anv,amne,fstamp) 
{
document.getElementById("hidntxt").value=ntxt;
document.getElementById("hidinlnr").value=inlnr;
document.getElementById("hidanv").value=anv;
document.getElementById("hidamne").value=amne;
document.getElementById("hidfstamp").value=fstamp;

}
</script>
</head>
<body>
<form action="tjforinlw.php" method="post" name="tjform2" >
<input name="hidinlnr" id="hidinlnr" type="hidden" >
<input name="hidfstamp" id="hidfstamp" type="hidden" >
<input name="hidanv" id="hidanv" type="hidden" >
<input name="hidamne" id="hidamne" type="hidden" >
<input name="hidntxt" id="hidntxt" type="hidden" >
...osv...
<input type="button" style="visibility:hidden;" value="<? echo $fid[$m]; ?>" name="submit_knapp" 
onClick="
var amne='<? echo $famne[$m]; ?>'; 
var fstamp='<? echo $fstamp[$m]; ?>';
var anv='<? echo $_SESSION['foranv']; ?>'; 
var mix1=<? echo $m; ?>;  
var inlnr=<? echo $fid[$m]; ?>;  
var ntxt=(document.tjform2.ftxt[mix1].value); 
sbmt(ntxt,inlnr,anv,amne,fstamp);
document.tjform2.submit();
">

[/log]

Vad får du ut i funktionen om du kör en alert(ntxt);?

Testa även med dem andra parametrarna.

 

Så här hade jag gjort funktionsanropet i onclick-händelsen(teckenfel...vet ej):

onclick="sumt('<? echo $famne[$m]; ?>','<? echo $fstamp[$m]; ?>','<? echo $_SESSION['foranv']; ?>',<? echo $m; ?>,<? echo $fid[$m]; ?>,document.tjform2.ftxt[mix1].value);"

Sist i funktionen lagt till:

document.tjform2.submit();

Vill du sen ha kontroll på värdena som kommer in får man utveckla funktionen ytterliggare.

 

[inlägget ändrat 2008-02-05 13:32:57 av Micke_skane]

Link to comment
Share on other sites

 <script type="text/javascript">
 function sbmt(ntxt,inlnr,anv,amne,fstamp)
 {
 [color="#ff0000"]alert (inlnr+ntxt);[/color]
document.getElementById("hidntxt").value=ntxt;
document.getElementById("hidinlnr").value=inlnr;
document.getElementById("hidanv").value=anv;
document.getElementById("hidamne").value=amne;
document.getElementById("hidfstamp").value=fstamp;
var ntxt1 = document.getElementById('hidntxt');
alert(document.getElementById('hidntxt'));
[color="#ff0000"]document.tjform2.submit();[/color]
}
</script>

 

<input name="hidinlnr" id="hidinlnr" type="hidden" >
<input name="hidfstamp" id="hidfstamp" type="hidden" >
<input name="hidanv" id="hidanv" type="hidden" >
<input name="hidamne" id="hidamne" type="hidden" >
<input name="hidntxt" id="hidntxt" type="hidden" >

Alerten i funktionen "sbmt" visar att variablerna kommer med in precis som dom ska. Därför ändrade jag inte på funktionsanropet som du föreslog. Det kan jag ju göra när allt funkar.

Submitten har jag däremot flyttat till att ligga sist i funktionen, och att det funkar vet jag genom echo. Däremot är alla POST-variabler tomma i det anropade forinlw.php.

Alltså borde det vara nåt problem med "document.getElementById" i funktionen.

Vad har det för betydelse att input/hidden är deklarerade utanför funktionen?

 

 

Link to comment
Share on other sites

Ändra funktionen till:

function sbmt(ntxt,inlnr,anv,amne,fstamp) {
//alert (inlnr+ntxt);
alert(document.getElementById('hidntxt').value);
document.getElementById("hidntxt").value=ntxt;
document.getElementById("hidinlnr").value=inlnr;
document.getElementById("hidanv").value=anv;
document.getElementById("hidamne").value=amne;
document.getElementById("hidfstamp").value=fstamp;
// Denna är fel! var ntxt1 = document.getElementById('hidntxt');
alert(document.getElementById('hidntxt').value);
//document.tjform2.submit();
}

Nu ska du få en alert-ruta som är tom och sen en alert-ruta där den visar värdet som lagts in i hidntxt.

Stämmer detta?

Testa gärna med alla hiddenfält!

 

Link to comment
Share on other sites

Nu funkar det! Det enda jag gjorde var att flytta deklarationen av input/hidden-fälten så att dom hamnade före anropet till funktionen.

 

Link to comment
Share on other sites

Archived

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



×
×
  • Create New...