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

js-variable till url

Rekommendera Poster

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

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

det ändrar väl inget om jag i stället lägger anropet till funktionen i OnClick i stället, dvs i anslutning till input-knappen?

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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?

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

japp, det funkade precis så, dvs värdet lades in i hidntxt som det skulle. Då vet vi ju att funktionen funkar så långt.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

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.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...