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

js-variable till url


jan-erik

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

 

Länk till kommentar
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]

Länk till kommentar
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?

 

 

Länk till kommentar
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 ;)

 

Länk till kommentar
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();

 

 

 

Länk till kommentar
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?

 

 

Länk till kommentar
Dela på andra webbplatser

Det funkar fanimej!
Klart det gör :)

 

Hur många poäng vill du ha?
Tja, du kan bara ge 5 åt gången och ett per svar man gett ;)

 

Länk till kommentar
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?

 

Länk till kommentar
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]

Länk till kommentar
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å!

 

 

Länk till kommentar
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.

 

Länk till kommentar
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.

 

 

 

Länk till kommentar
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]

Länk till kommentar
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?

 

 

Länk till kommentar
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!

 

Länk till kommentar
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.

 

Länk till kommentar
Dela på andra webbplatser

Testa med alla hiddenfält för säkerhets skull.

Och japp, då kan man börja på php-koden(antagligen).

 

Länk till kommentar
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.

 

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