webForumDet fria alternativet

Ett litet problem med lagerfunktion

14 svar · 256 visningar · startad av AndreasC

AndreasCMedlem sedan mars 20011 964 inlägg
#1

Jo jag har ett litet problem med en lager funktion i min gästbok? Jag försöker göra så att användaren ska kunna bestämma ifall hans personliga uppgifter skall synas eller inte när han skriver ett privat inlägg. Jag har testat med lager och det funkar delvis. Problemet är att lagret inte hamnar där jag vill ha det och det hamnar inte i varje privata inlägg som jag har tänkt mig att det ska göra. Om någon har lust så kan du kanske ta en titt på det och se om du kan komma fram till en lösning. Först och främst är det ett script som kallar in en fil med namnet layerlib.js och den ligger i headtaggen. Sedan är det en listruta i formuläret där man kan svara på frågan ifall man vill dölja sina personliga uppgifter, och till sist, koden för de två lagren, där ett av dem visas beroende på hur man har svarat i formuläret, och de ligger i koden för privata inlägg. Jag har slitit med detta så svetten lackar nu men jag kan inte lista ut hur jag ska få det att fungera. Så om du kunde titta på det så skulle jag vara mycket glad. Adressen till gästboken är http://www.erimax.com/gbook/?book=5519 Som det är nu så visas båda lagren i koden men bara ett av dem ska visas.

JohnsenMedlem sedan juli 2000836 inlägg
#2

Hej! Första inlägget, alltid trevligt med nya förmågor.

Det där med placeringen styr du ju i lagrets style.
Du ha valt att sätta layer1 till: style="position:absolute; top:100px; left:50px;"
och layer2 till: style="position:absolute; top:50px; left:50px;"
Då hamnar ju lagren där! Vill du att dom skall hamna någon annan stans får du ändra top: & left:.

AndreasCMedlem sedan mars 20011 964 inlägg
#3

Jag tvivlar starkt på att det skulle vara så enkelt. Det är lite värre än så. Det spelar ingen roll vilket svarsalternativ jag väljer i formuläret. Hur jag än svarar så visas båda lagren istället för bara det ena, iallafall om man tittar i html-koden. Angående positionen så vet jag inte om den kommer att hamna där jag vill att den ska göra. Positionen räknas ju från toppen och från vänster av hela sidan. Vad jag vill är att kunna placera en kopia av det ena eller det andra lagret i varje privata inlägg. Hoppas du förstår vadjag menar.

JohnsenMedlem sedan juli 2000836 inlägg
#4

Som jag förstår det så vill du att det lager som inte syns, inte heller skall finnas i källkoden.
Detta går inte att göra i javascript som körs på klientsidan.

/ J

AndreasCMedlem sedan mars 20011 964 inlägg
#5

Ok, men varför visas samma lager vilket alternativ jag än väljer i formuläret? När jag väljer att visa lager2 så visas lager 1 eller om det är tvärtom.

JohnsenMedlem sedan juli 2000836 inlägg
#6

Jag känner att jag inte riktigt hänger med. Vad är det egentligrn vill åstakomma?
Du har två lager på sidan, deras synlighet styrs av select och när alternativet är NO, visas ingen info, men när alternativet är YES visas lagret med namn, e-mail mm.

Detta funkar ju alldes utmärkt (med undantag för positioneringen).

Om du vill att valda alternativ skall skickas med meddelandet och lagras på servern, måste du ändra i det script som tar emot och visar infon.
Har du gjort det scriptet själv och kan du ändra i det?

AndreasCMedlem sedan mars 20011 964 inlägg
#7

Nej det fungerar inte som det ska. Vad jag kan se så har du inte testat att skriva i gästboken. Skriv ett par inlägg så får du se vad jag menar.

PeWMedlem sedan juni 200010 432 inlägg
#8

Jag kollade lite och fick fram att "document.all[...].style inte är ett objekt"... dvs den är inte initierad. Den ligger ju kapslad i en funktion och borde kanske initieras innan den anropas?
Jag kollade bara lite snabbt, men det kanske är en hjälp iaf :)

------------------
Ancilla, face mea laganum!

JohnsenMedlem sedan juli 2000836 inlägg
#9

Nu förstår jag verkligen ingenting!

Var har du gjort av de två lagren?
Som det är nu har ju selecten ingen funktion utan returnerar bara ett fel efter som varken showLayer(), hideLayer(), layer1 eller layer2 finns.

AndreasCMedlem sedan mars 20011 964 inlägg
#10

En viktig liten detalj som du tycks ha glömt är att valet du har gjort bara fungerar med privata meddelanden. Du måste alltså markera kryssrutan under submitknappen för att de båda lagren skall kunna visas. Snälla, testa igen genom att skriva ett par privata meddelanden. Det kanske är lite otydligt i formuläret, det må hända att jag får skriva lite tydligare vid något tillfälle. Hoppas du förstår hur funktionen är tänkt att användas. Man ska alltså inte kunna dölja sina personliga uppgifter i ett vanligt inlägg men däremor ska man kunna göra detta med ett privat.

JohnsenMedlem sedan juli 2000836 inlägg
#11

OK, nu har jag testat igen.

När man skrivit ett privat meddelande och det visas, så skickar cgi-skriptet inte några personliga uppgifter till själva meddelandet. Däremot skickas det till ett lager (layer2) som är satt till 'hidden' och därför inte kommer att visas förren man ändrar selecten.
Sålunda kommer alltid de personliga uppgifterna vara med i koden, javascript kan ju inte exekveras om inte infon finns hos klienten.

För att det skall fungera så som jag tror att du vill ha det, måste du låta cgi-skriptet sköta visningen av uppgifterna.

Alltså: när man skickar ett meddlande skall informationen om man vill ha personuppgifterna synliga eller ej tas emot av cgi-skriptet och lagras.
När sedan cgi-scriptet skickar kod till klienten skall valet om personuppgifterna redan vara gjort på servern.
På så vis löser du även problemet med placeringen av personuppgifterna, då du slipper lägga dem i ett lager.

Kontenta: Skall du använda dig av javascipt för att visa / dölja information kommer du alltid att måsta skicka informatinen till klienten och då förlorar du syftet med hela grejjen. Använd cgi-skriptet!

AndreasCMedlem sedan mars 20011 964 inlägg
#12

Ehh, ta det lite lugnt nu. Det där är jag inte säker på om jag hängde med på. Jag fattar inte ett av cgi-script och det är därför som jag inte har varken skrivit det själv eller har den på egen server. Kan du inte tala om hur jag ska skriva istället för lagren? Jag menar, den exakta koden och vart den skall placeras. Snälla?

JohnsenMedlem sedan juli 2000836 inlägg
#13

Hmmm, OK! Jag skall försöka kolla lite på det där, men det kan ta lite tid.

Önskar förresten att dygnet hade 48 h.

/J

------------------
Eskimåer har över 40 ord för snö, men bara 3 för bottenlån med rörlig ränta.

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#14

Johnsen fixar allt! :) (Kolla wF Awards..)

Kan för övrigt hålla med om det där med dygnet. Hinner aldrig något.. :l

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

AndreasCMedlem sedan mars 20011 964 inlägg
#15

Har du hunnit kolla på det Johnsen?

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