Ja.. jag vet inte hur smart det är att försöka ge sig på script som man verkligen inte förstår...
Jag har kommit över ett javascript som bla annat använder sig av "div" mm för att räkna ut en massa värden.
Till saken hör nog även att scriptet kan dynamiskt lägga till fler fält - någom som ställer till det för mig.
Nu till mitt problem, jag vill kunna "fånga upp" resultatet av vad detta javascript räknar ut på en annan sida.
Så mycket har jag förstått att jag måste "föra över" datan från mina div till vanliga formulärfältet när jag postar en form till en annan sida.
<script type="text/javascript">
function send(){
document.foo.bar.value=document.getElementById("divens_id").innerHTML;
document.foo.submit();
};
<script>
<div id="divens_id">Text som kommer att skickas...</div>
<form name="foo" method="post" action="send_info.php">
<input type="text" name="bar">
</form>
<button onclick="send()" name="send">Skicka</button>
Detta får jag till att fungera... dock iom att javascriptet är dynamiskt och man med hjälp av den ursprungliga koden kan lägga till flera fält så hur löser jag det?
Det hela är uppbyggt av liknande satser:
$('result-'+n+'-d').innerHTML = osv. osv..
Om jag då hårdkodar så fungerar det ju (när n = 1):
Ja.. jag vet inte hur smart det är att försöka ge sig på script som man verkligen inte förstår...
Jag har kommit över ett javascript som bla annat använder sig av "div" mm för att räkna ut en massa värden.
Till saken hör nog även att scriptet kan dynamiskt lägga till fler fält - någom som ställer till det för mig.
Nu till mitt problem, jag vill kunna "fånga upp" resultatet av vad detta javascript räknar ut på en annan sida.
Så mycket har jag förstått att jag måste "föra över" datan från mina div till vanliga formulärfältet när jag postar en form till en annan sida.
<script type="text/javascript">
function send(){
document.foo.bar.value=document.getElementById("divens_id").innerHTML;
document.foo.submit();
};
<script>
<div id="divens_id">Text som kommer att skickas...</div>
<form name="foo" method="post" action="send_info.php">
<input type="text" name="bar">
</form>
<button onclick="send()" name="send">Skicka</button>
Detta får jag till att fungera... dock iom att javascriptet är dynamiskt och man med hjälp av den ursprungliga koden kan lägga till flera fält så hur löser jag det?
Det hela är uppbyggt av liknande satser:
$('result-'+n+'-d').innerHTML = osv. osv..
Om jag då hårdkodar så fungerar det ju (när n = 1):
Ett sätt skulle väl vara att du modifierar scriptet och ser till att det lägger till en css-class på de dynamiska diverna divarna.
Då skulle du kunna loopa igenom samtliga divar som har css-classen du har gett dem. Då kan du antigen för varje item i kollektionen skapar ett dynamiskt formulär element med namnet name="fieldn" där n är n+1 för de dynamiska diverna alternativt att du skapar ett formulärfält för varje item i kollektionen med namnet name="fieldvalues[]" alternativt att du bygger upp en sträng: som separerar värdena med ex. , ; | som du sedan lägger in i ett formulärfält.
Detta beror ju lite grann på hur du vill fånga upp datan och spara den också som avgör vilken lösning som passar bäst.
Jo det är ju som sagt en nackdel emellanåt när man ska ge sig på o modifiera befintliga grejer som man inte själv förstår sig på. :)
Jag har en asp-sida som ska ta hand om infon och spara den i en db så där känner jag att man har ganska stor handlingsfriet att ta hand om infon som sänds.
(En liten tanke jag hade var att sen kanske kunna populera(?) den ovan visade koden/fälten/divarna med dess data ur databasen, men det kanske blir ett än värre jobb..
Kanske är det lättare för mig att skriva om den ursprungliga sidan med enklare kod som är direkt inriktad på att datan ska sparas?
Men.. tillbaks till era svar..
Spin: Det där verkar kunna vara något... dock fastnar den i en loop så det verkar inte gå att använda sig av "undefined"
-Finns det något sätt att få reda på vad som verkligen ges tillbaks till webläsaren som man kan trigga det hela på?
Annars skulle jag ju kunna gå bakvägen o låta en loop kolla om fälten/värdena finns, men det känns ju lite tokigt.
Jag tycker att det vore enklare att ha använda class="foo" istället för att hålla på och joxxa runt med id:n+n (id_1, id_2 etc). Med bra dokumentation blir det ungefär som interface i OOP där varje HTML-element med klassen "foo" alltid måste innehålla vissa HTML-element - annars skippas noden.
Stödet för document.getElementsByClassName() är sådär lagom halvt fungerande bland dagens webbläsare (IE saknars) men det blir bättre. De vanligaste Javascript-ramverken brukar implementera den funktionen så det borde vara safe att utgå från att den finns. Använder man t.ex. jQuery slipper man tänka på det öht.
Hur som helst: jag förstår om du inte vill ändra fungerande kod. Stämmer det att koden funkar som så i det accepterade svaret?
Uj, asp är jag till viss del bevandrad i, detta är däremot verkligen inte min sida.
Kan ni ge ett exempel på hur jag implementerar class="foo" och sen "läser den"?
Just dessa fält som följer den struktur som avhandlas tidigare fungerar, men sen när jag gav mig på det jag trodde skulle vara en mindre utmaning så gick jag bet, dessa finns det bara ett av och de är ej dynamiska ens.