Avatar billede sidselbp Nybegynder
15. februar 2006 - 15:30 Der er 16 kommentarer

En simpel "grafitti-wall"

Jeg skal lave en simpel "Grafitti-wall", hvor brugeren i et inputfelt kan taste en beske ind, og sende den, så den efterfølgende bliver vist på siden.

Jeg tænker, at en simpel måde at gøre det på, er at oprette en html side, hvor der er et inputfelt. Her kan brugeren taste noget ind, og det bliver så gemt som en variabel. Når brugeren trykker send, bliver variablen vist et sted på siden (der hvor man har sagt at variablen skal vises....)

Er der nogen, der kan komme i tanke om en nem måde at lave en sådan grafitti-wall på? Eller måske findes der noget lignende, man kan bruge til det?

Vh. Sidsel
Avatar billede Slater Ekspert
15. februar 2006 - 15:35 #1
Det er for det første umuligt at lave i Javascript, hvis du vil have at andre skal kunne se hvad en bruger skriver...
Avatar billede roenving Novice
15. februar 2006 - 15:38 #2
Tjah, hvis man sætter en AJAX-ting op, kan man jo gøre det !-)

-- og en tagwall skal vel ikke opdateres on-the-fly, så egentlig kan man 'bare' placere en form i en iframe og så sende den til serveren, så den sender tilbage med de nyeste, der er plads til !-)
Avatar billede sidselbp Nybegynder
15. februar 2006 - 15:56 #3
Det skal køre på en skærm, som står et offentligt sted. Det vil sige, at alle brugere tag'er (eller skriver kommentarer) på den samme maskine, så måske kan java script godt bruges?
Avatar billede roenving Novice
15. februar 2006 - 16:01 #4
Hvis det bliver i den samme browser kan det sagtens laves med javascript, men hvad så når den bliver lukket ?-)
Avatar billede sidselbp Nybegynder
15. februar 2006 - 16:06 #5
det er ok, at indholdet forsvinder, når browseren lukkes. indholdet skal ikke nødvendigvis gemmes, da vi regner med, at der løbende vil komme kommentarer ind...
Avatar billede olebole Juniormester
15. februar 2006 - 18:03 #6
<ole>

Et gammelt - vistnok DynamicDrive-script - udbygget med lidt andet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Drag eksempel</title>
<style type="text/css">
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
.drag {
    position: absolute;
    border: 2px solid red;
    background: yellow;
    padding: 5px;
    cursor: move;
}
</style>
<script type="text/JavaScript">
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var dragapproved = false;
var z,x,y;

function move(e) {
    if (dragapproved) {
        z.style.left = ns6? temp1+e.clientX-x : temp1+event.clientX-x;
        z.style.top = ns6? temp2+e.clientY-y : temp2+event.clientY-y;
    }
    return false;
}

function drags(e) {
    if (!ie && !ns6) return;
    var firedobj = ns6? e.target : event.srcElement;
    var topelement = ns6? "HTML" : "BODY";
   
    while (firedobj.tagName!=topelement && firedobj.className!="drag") {
        firedobj = ns6? firedobj.parentNode : firedobj.parentElement;
    }
   
    if (firedobj.className=="drag") {
        dragapproved = true;
        z = firedobj;
        temp1 = parseInt(z.style.left+0);
        temp2 = parseInt(z.style.top+0);
        x = ns6? e.clientX: event.clientX;
        y = ns6? e.clientY: event.clientY;
        document.onmousemove = move;
    }
    return false;
}
document.onmousedown = drags;
document.onmouseup = function(){dragapproved = false};

function doTag() {
    var oSpn, sTxt, oCont, oTxtField = document.getElementById("txtField");
    sTxt = oTxtField.value;
    if (sTxt.length<1) return;
    oCont = document.getElementById("container");
    oSpn = document.createElement("div");
    oSpn.innerHTML = sTxt.replace(/\n/g, "<br>")
    oSpn.setAttribute("className", "drag");
    oCont.appendChild(oSpn);
    oTxtField.value = "";
}
</script>
</head>
<body>
<textarea id="txtField"></textarea>
<button onclick="doTag()">Opret Tag</button>

<div id="container" style="position:relative;height:300px"></div>

</body>
</html>

/mvh
</bole>
Avatar billede roenving Novice
16. februar 2006 - 00:32 #7
>>ole

Drag ?-)
Avatar billede olebole Juniormester
16. februar 2006 - 00:44 #8
- ehhhhhh ... ja ....?!??!!! Går det på noget med min påklædning, Søde ... eller ...?  :)
Avatar billede roenving Novice
16. februar 2006 - 00:57 #9
Hvis spørgsmålet handler om at lave en tagwall på en browser i en enkeltstående computer har et eksempel, somkaldes en drag-tng vel ikke så meget at gøre ...

-- og slet ikke, hvis den vedbliver at overskrive enhver besked, så kommer der vel ikke så meget tagwall ud af det ?-)
Avatar billede olebole Juniormester
16. februar 2006 - 00:58 #10
btw, Jes - fandt du nogensinde de BookMarklets, du efterspurgte i en eller anden tråd?
Avatar billede olebole Juniormester
16. februar 2006 - 01:00 #11
Den overskriver ikke - men du kan jo prøve at lege 'drag-queen' ... den nye ligger bare ovenpå  ;o)
Avatar billede roenving Novice
16. februar 2006 - 01:04 #12
-- de er selvfølgelig arkiveret !-)

-- men en anden løsning findes vel, når vi snakker tagWall, hvor drag-tingen vel er rent overflødig ?-)
Avatar billede olebole Juniormester
16. februar 2006 - 01:06 #13
- men vi kan godt lave doTag-funktionen like this:

function doTag() {
    var oSpn, sTxt, oCont, oTxtField = document.getElementById("txtField");
    sTxt = oTxtField.value;
    if (sTxt.length<1) return;
    oCont = document.getElementById("container");
    oSpn = document.createElement("div");
    oSpn.innerHTML = sTxt.replace(/\n/g, "<br>");
    oSpn.setAttribute("className", "drag");
    oSpn.style.left = (Math.random()*100) + "px";
    oSpn.style.top = (Math.random()*100) + "px";
    oCont.appendChild(oSpn);
    oTxtField.value = "";
}

Det er klart, at hvis det er noget, der skal foregå over nettet, duer dette ikke.
Er det noget, der skal stå og køre på en info-dims, er det en idé til en mulig løsning ... her tænker jeg på kommentaren (15/02-2006 15:56:35)
Avatar billede olebole Juniormester
16. februar 2006 - 01:08 #14
Det med drag-tingen var udfra overskriften, som ikke er 'tag-wall'. Formuleringen pegede mod, det måske kunne være meget sjovt, at man selv kunne trække teksten hen på et 'passende' sted  :)
Avatar billede sidselbp Nybegynder
21. februar 2006 - 15:39 #15
Hej Ole
Tak for et godt svar. Jeg sidder og er ved at udvide din kode lidt - bl.a. skal jeg have et input-felt mere, så man kan skrive sit "tag" og i et andet felt sit navn og så sende det samlet til tag-wall'en. Jeg har oprettet et textfelt ekstra, men det er som om, at jeg ikke rigtig kan få teksten i det nye input-felt med på tag'et. Hvis du også lige sender et svar giver jeg dig point.
Avatar billede sidselbp Nybegynder
21. februar 2006 - 16:54 #16
hej igen
jeg har fundet ud af det hele nu, så bare smid et svar, så er der point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester