webForumDet fria alternativet

lager, formulär och document.write(värde från form)

8 svar · 341 visningar · startad av JonasG

JonasGMedlem sedan mars 2001148 inlägg
#1

hej!

har lite strul.
pysslar med ett formulär för ett ganska stort bokningssystem. det är uppdaterat på flera formulär, men jag har löst det genom att bara ha ett formulär och stega mig fram genom lager som visar olika delar av formuläret. annars måste man spara undan temporärt i databas.

på slutet har jag en bekräfta sida, som bara visar en sammanfattning av vad man fyllt i formuläret. denna ligger också som ett lager i samma fil, just för att slippa spara undan.

där försöker jag använda
document.write(formular.falt.value);
och det fungerar ju utmärkt. själva utskriften.
men den uppdaterar ju inte utan skriver naturligtvis ut värdet som fanns från början.

hoppas ni förstår tanken? :-)

min undran e alltså om ni har något tips om hur det kan uppdateras och skriva ut det nya värdet. utan att behöva ladda om fil eller liknande, som skulle tömma formuläret.

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Jag har kanske suttit för länge framför datorn idag, men i så fall får du ursäkta - är inte riktigt med :) När man fyllt i första delen av formuläret, submittar du det då och låter något serverside-script generera nästa del av formuläret samt sätta gammal fält-info i hidden-fält, eller gör du allt med JavaScript och låter bli att submita och istället gömma den aktuella delen av formuläret med DOM och sedan visa nästa?

document.write tyder ju på att du skriver ut det aktuella datat när sidan laddas, och det tyder i sin tur på att du submittar formuläret för varje del... har du inte tillgång till ASP eller dylikt? Vill du läsa av skickat formulärsdata med JavaScript måste du för det första använda metoden get, och då kan du läsa datat med ex detta script.

Som sagt, ursäkta om jag är segare än vanligt :)

JonasGMedlem sedan mars 2001148 inlägg
#3

Hej!

Förmodligen är det jag som inte förklarar så jättebra.
Jag kör asp men vill inte göra det förrän resenären klickar på "boka"-knapp. Och det gör man inte förrän man har kikat på en "bekräfta"-sida, som visar (i klartext) vad man fyllt i formuläret.

document.write kör jag och som du säger så görs väl det bara när sidan laddas.

Formuläret submitas alltså inte.
För användaren ser det ut som det är 6 olika formulär man går igenom. Men det enda som händer är att 6 olika lager med olika delar av samma formulär visas.

Den 7:e sidan skall bara visa en sammanfattning av formuläret (samtliga 6 lager). Detta lager måste alltså renderas om på något sätt (?).
Andänder css och display:none resp. block för att visa / dölja lagren.

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Du kan "markera" stället där texten skall skrivas med;

<div id="righthere"></div>

och sedan använda;

document.getElementById("righthere").innerHTML="En liten text...";

För att sätta in texten där - utan att ladda om sidan.

JonasGMedlem sedan mars 2001148 inlägg
#5

Jag får felmeddelande:

objektet stöder inte den egenskapen eller metoden.
Gäller raden "document.getElement..."

Det enda jag använder är:

function uppdatera(){
	document.getElementByID("bekr").innerHTML="här är lite test...";
}

och har

<div id="bekr"></div>

Funktionen uppdatera använder jag varje gång jag navigerar mellan (visar / döljer) lagren med formuläret.

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Ska vara ett litet "d" i getElementByID. Känsligt det här...

JonasGMedlem sedan mars 2001148 inlägg
#7

Hm... att det skall vara så petigt...
Men det fungerar!

Nu...
Det kommer vara ganska mycket text som skall skrivas ut.
Går det att ha javascript i det?
Nämligen:
Radiobuttons och checkboxes skall kollas av. Är en checkbox checked, skall "Återresa skall göras" skrivas ut och annars "Återresa skall inte göras". Som exempel.

Sådant kommer det vara hela tiden.
Är det möjligt?

JojoxxMedlem sedan juni 20004 308 inlägg
#8

html kan du använda, men e.v. script-taggar som inkluderas med innerHTML kommer inte att exekveras. Men det spelar ju ingen roll. Det kan du ju lika gärna göra på raden efter i scriptet.

Instället för:

xxx.innerHTML="Hej<sc"+"ript>alert(\"Hej\");</sc"+"ript>";

Kör du:

xxx.innerHTML="Hej";
alert("Hej");

Element, formulärsobjekt, whatever, som du inkluderar kommer att vara tillgängliga.

JonasGMedlem sedan mars 2001148 inlägg
#9

Tack för mycket bra hjälp!

Håller på och fixar med det nu. Mycket kodande men det hade det blivit hur man än hade gjort det, submittat eller dylikt.
Det blir def. bäst så hära.

Ha re!

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)