Avatar billede nemlig Professor
01. juni 2009 - 11:03 Der er 20 kommentarer og
2 løsninger

Vis java-variabler som tekst i stedet for i input-felt

Hejsa.
Jeg har et lille popup-script, som henter nogle data fra MySQL og smider dataene tilbage i min input-formular.

I input-felterne hentes dataene sådan her:
<input type='text' id='myElektronisk' name='elektronisk' value='".getSavedForm('elektronisk')."'>

Kan den vises uden om et input-felt - altså som direkte tekst.

Lige nu skal jeg genopfriske siden, hvorefter jeg jeg kan vise indholdet af $_POST['elektronisk'].
Avatar billede ebusiness Nybegynder
01. juni 2009 - 12:17 #1
Det sprog du arbejder i hedder PHP, og ja, så skal du bare lade være med at sætte et input felt udenom.
Avatar billede nemlig Professor
01. juni 2009 - 12:30 #2
Jeg er ikke helt med på dit forslag.
Det er korrekt, at jeg arbejder med PHP.
Jeg har løst det med input med typen "readonly", og så smider jeg en anden style på, så jeg ikke får boksen/rammerne med.
Men jeg lytter gerne til bedre løsninger.
Avatar billede ebusiness Nybegynder
01. juni 2009 - 12:40 #3
echo getSavedForm('elektronisk');

Det du gør med PHP er at skrive et HTML dokument fra bunden, jeg forstår ikke hvordan du til at starte med har fået den ide at det skulle være specielt svært at indsætte en variabel udenfor et input felt.
Avatar billede nemlig Professor
01. juni 2009 - 12:57 #4
Vi snakker forbi hinanden....
Det handler nok mere om Javascript end PHP.
Der er ikke tale om en php variabel, men i stedet en javavariabel.
Jeg har et popupvindue, hvor jeg kan vælge blandt nogle kunder, og når jeg klikker på én kunde, overføres kundedataene til nogle inputfelter.
Indholdet af javavariablen bliver altså smidt i nogle input-felter ved hjælp af fx "id=myElektronisk". Så har input-feltet denne værdi til en start. Men værdien smides først over i Session-variabel (via funktionen getSavedForm() ved Submit.

Mit spørgsmål går på, om det er muligt at smide javavariablen uden om et inputfelt - altså uden brug af Submit.

echo getSavedForm('elektronisk'); virker jo først efter submit, på samme måde som echo $_POST['elektronisk'];
Avatar billede fant0mas Nybegynder
01. juni 2009 - 13:29 #5
Du tænker nok på ajax. Der findes et hav af guides til det derude. Søg og find. Men er det nødvendigt? Hvis de felter der bliver opdateret, alligevel skal submittes? - Er det vinduet eller sidens data du vil poste?
Avatar billede nemlig Professor
01. juni 2009 - 13:38 #6
Det er sidens data, jeg vil poste.
Der er faktisk tale om en input-formular i 4 trin.
I trin 1, er det muligt at udfylde et søg-felt, hvor der ved klik på en søg-knap popper et vindue op med resultaterne (kundenavne). Og når der klikkes på et en kunde, så overføres alle kundens data til nogle input-felter af typen "hidden", som jeg så bruger i de senere trin.
Jeg ville bare gerne, at der i trin1, vises lidt flere detaljer om kunden, så man er sikker på, at det er den korrekte kunde, der er valgt i popup-vinduet.
Men jeg har har løst det ved at vise de relevante input-felter i trin 1 med typen "readonly".

Jeg troede bare, det var muligt at vise de relevante felter udenfor input-felterne og uden submit.
Avatar billede ebusiness Nybegynder
01. juni 2009 - 13:40 #7
Du mener JavaScript, og nej, det er slet ikke det samme som Java.

Dit spørgsmål er stadigvæk et værre rod. Men jeg tror nok hvad du efterspørger er dette:

HTML kode:
<span id="spanid"></span>

JavaScript kode som sætter indhold i span elementet:
document.getElementById("spanid").innerHTML="teststreng"
Avatar billede nemlig Professor
01. juni 2009 - 15:09 #8
Ok - interessant. Men jeg er ikke 100% med endnu.

Jeg forstår sådan, at jeg i min <body> sektion kan skrive:

<script type="text/javascript">
document.getElementById("myElektronisk").innerHTML="teststreng"
</script>
<span id="myElektronisk"></span>

Men det virker ikke, hvorfor jeg nok har lavet noget forkert.
Avatar billede ebusiness Nybegynder
01. juni 2009 - 16:42 #9
Næsten rigtigt, men når du skriver JavaScript kode direkte udenfor en funktion så bliver det kørt i det øjeblik det indlæses, og det er i dette tilfælde før det element der skal ændres er indlæst. Hvis bare du sætter script blokken til sidst så virker det.
Avatar billede nemlig Professor
01. juni 2009 - 16:53 #10
Det vil sige sådan her:

<span id="myElektronisk"></span>

<script type="text/javascript">
document.getElementById("myElektronisk").innerHTML="teststreng"
</script>

Men det virker ikke. Der står intet.

Står de forskellige id'er korrekt?

Jeg har det dog til at virke med input med "readonly".
Avatar billede ebusiness Nybegynder
01. juni 2009 - 17:08 #11
Det står helt korrekt, jeg har testet koden som du skrev den, ingen problemer. Er din browser sat til ikke at afvikle JavaScript? Har du fejl andre steder i koden? Hvilket doc tag bruger du?
Avatar billede mclemens Nybegynder
01. juni 2009 - 19:37 #12
- Eller har du et andet element stående på samme side med id="myElektronisk"
(Et id må kun bruges en gang på samme side)

- Eller har du et element med name="myElektronisk" på samme side.
(IE afhængig af version kan fjumre lidt i id vs. name til tider)
Avatar billede nemlig Professor
01. juni 2009 - 20:29 #13
Jeg har lige præcis anvendt elementet 1 gang i forvejen.
Den har jeg nu fjernet, og nu skriver den "teststreng".

Er det i øvrigt stavet forkert.

Jeg har også prøvet at skrive "tekststreng".

Men så er resultatet bare, at der skrives "tekststreng".
Avatar billede ebusiness Nybegynder
01. juni 2009 - 20:53 #14
Det er jo en streng til at teste med, dermed en teststreng, at det så samtidig er en tekststreng er et rent tilfælde.

Men altså, nu har du en basal metode til dokument redigering vha. JavaScript, så skal du bare have det sat ind i sammenhængen.
Avatar billede mclemens Nybegynder
01. juni 2009 - 22:02 #15
Hvilket måske er:
document.getElementById("myElektronisk").innerHTML=getSavedForm('elektronisk');

(Såfremt getSavedForm(inputnavn) er en js funktion vi ikke
kender til, som returnerer den tekststreng, der skal bruges)
Avatar billede nemlig Professor
01. juni 2009 - 22:20 #16
getSavedForm('elektronisk') er en PHP-funktion, som gemmer værdien i Sessions, således værdien bevares, når jeg skifter til trin2 og sv.
Avatar billede mclemens Nybegynder
01. juni 2009 - 22:49 #17
#6, Hmm d.v.s. du vil have tilrettet popup scriptet, så den udover at overføre værdierne til input felterne med hidden ønsker dem overført til synlige textfelter ...

- Så skal du bare udvide #7, så den overfører dataerne via. popup scriptet (der hvor de ønskede javascript variabler er tilgængelige, det er ikke let at sige præcis hvordan uden at se popup scriptet og variabel navnene).

Måske noget i stil med
window.opener.document.getElementById("myElektronisk").innerHTML="teststreng2";
- hvor "teststreng2" erstattes af navnet på javascript variablen.
Avatar billede nemlig Professor
01. juni 2009 - 23:02 #18
OK - det forstår jeg.
Men så synes jeg min nuværende løsning med at de variabler jeg skal bruge i senere trin, smides i en input med typen "hidden", mens de variabler jeg skal vise, smides i en input som "readonly".
Jeg har det til at virke med det, men troede bare, at det kunne gøres mere enkelt.

Tak for jeres bidrag. Send venligst et svar og jeg fordeler pointene.
Avatar billede mclemens Nybegynder
01. juni 2009 - 23:09 #19
Jeg springer over, men tak for tilbuddet :)
Avatar billede showsource Seniormester
02. juni 2009 - 18:28 #20
Nu har jeg IKKE læst alle kommentarer igennem, men spm. titel:
"Vis java-variabler som tekst i stedet for i input-felt"

Til at vise html kode, incl. javascript, kan du bruge <xmp></xmp>
Alt indenfor xmp vises som tekst, og afvikles ikke.
Avatar billede mclemens Nybegynder
02. juni 2009 - 18:53 #21
-> Showsource

Sommetider skal man læse mere end en titel for at vide
hvad spm. drejer sig om - derfor muligheden for at spørgeren
kan skrive et tekst der beskriver hans spørgsmål ... anyway:

Hvis man har en javascript variabel og ønsker teksten fra javascript variablen vist som alm. tekst istedet for
vist i et input element og man benytter sig af:
("Vis java-variabler som tekst i stedet for i input-felt")

"Til at vise html kode, incl. javascript, kan du bruge <xmp></xmp>
Alt indenfor xmp vises som tekst, og afvikles ikke. "

- Vil man jo få vist javascript eller html koden og ikke
teksten som er inde i javascript variablen - kun variablens
navn, det vil med andre ord ikke virke til spørgsmålets titel.
(Medmindre der havde stået "Vis javascript som tekst i stedet for at køre det)
Avatar billede showsource Seniormester
02. juni 2009 - 18:58 #22
Du har da fuldstændig ret ! :O)
( Det er al den sol ..... )
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