Avatar billede vels Nybegynder
02. marts 2004 - 12:52 Der er 12 kommentarer og
1 løsning

Indsæt værdi fra dropdown i felt (i frame)

Hej


Jeg fik bixet det sammen her:
http://www.eksperten.dk/spm/469183

Men nu vil jeg gerne have dropdown i en frame, og selve tekst feltet i en anden frame... hvordan får man lige det til at spille??
Avatar billede nute Nybegynder
02. marts 2004 - 13:24 #1
for at tilgå felt i en anden frame, skal du navigere til dokumentet, der indeholder dine frames (gøres ved brug af 'parent'), og derefter dykke ned til den andre frame:

parent.document.frames['FRAMENAVN'].document.getElementById('DITFORMFELT').value = "noget";

/nute
Avatar billede vels Nybegynder
02. marts 2004 - 13:47 #2
kan du give et eks? for jeg er ikke helt med?

Er det selve filen hvor man definere framene?
Avatar billede nute Nybegynder
02. marts 2004 - 13:56 #3
lad os sige du har en side (frameset.html) der indeholder dine frames. du har to frames: left og right (left.html og right.html). du har en dropdown i din 'left' frame og feltet du vil lægge en værdi ind i, ligger i din 'right' frame.

i din 'left.html' fil har du så denne kode:

<html>
<body>
<form id="frm">
<select id="sel" onchange="parent.document.frames['right'].document.getElementById( 'txt' ).value=this.selectedIndex;">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
</body>
</html>

i din 'right' frame, har du så denne kode:

<html>
<body>
<form id="frm">
<input type="text" id="txt">
</form>
</body>
</html>


/nute
Avatar billede vels Nybegynder
02. marts 2004 - 16:18 #4
Hej det virker næsten...

Før da jeg havde dropdown på samme side som tekst feltet, placerede jeg musen der hvor jeg ville have indholdet fra dropdowen og trykkede... her efter valgt jeg nogeti dropdown, hvor efter det blev indsat der hvor jeg ville ha det... det virker ik rigtig... før så min select sådan her ud:

<select name="minSelect" onblur="harFokus = false" onchange="indsaet(this.value);">

Og har prøvet at ændre en til:
<select name="minSelect" onblur="harFokus = false"  onchange="parent.document.frames['editor'].document.getElementById( 'tekst' ).value=indsaet(this.value);">
Avatar billede vels Nybegynder
02. marts 2004 - 16:19 #5
det skal lige siges at det du skrev virede, da den desværre bare ryder txt feltet og indsætter det fra dropdown
Avatar billede nute Nybegynder
02. marts 2004 - 16:54 #6
hmm ... noget ála dette:

**********
left.html
**********
<html>
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    function transferValue( objElement )
    {
        var objFocusElement = parent.document.frames['right'].objFocus;
        if( objFocusElement )
        {
            objFocusElement.value = objElement.selectedIndex
        }
    }
    //-->
    </script>
    </head>
<body>
<form id="frm">
<select id="sel" onchange="transferValue( this );">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
</body>
</html>

**********
right.html
**********
<html>
<head>
    <script language="JavaScript" type="text/javascript">
    <!--
    var objFocus = null;
    //-->
    </script>
</head>
<body>
<form id="frm">
<input type="text" id="txt" onfocus="objFocus=this;">
<input type="text" id="txt2" onfocus="objFocus=this;">
</form>
</body>
</html>

/nute
Avatar billede vels Nybegynder
02. marts 2004 - 17:07 #7
Jeg har jo en funktion til at indsætte i teksfeltet... kan man ikke få den nye framepage til at smide værdien til den... og lade den funktion indsætte?
Avatar billede nute Nybegynder
02. marts 2004 - 17:17 #8
problemet, som jeg er det (måske fordi jeg ikke har sat mig ind i den løsning du har postet. Grunden er fordi den er ikke særlig godt lavet ... den er relativt mærkelig skrevet (no offence)) er nok at du ikke helt har forklart fra starten af, hvad det er du ønsker. du har bedt om at få noget kode til at smide data på tværs af frames, noget du har fået, men pludselig vil du have lavet en allerede eksisterende funktionalitet om ?!?!

jo, du kan højst sandsynlig lade den eksisterende funktion lave det for dig, men hvad skal så ske med den kode der allerede fungere ? hvad er det du ønsker at lave om på, i forhold til den kode der allerede er postet i det andet spm ?

/nute
Avatar billede vels Nybegynder
02. marts 2004 - 17:29 #9
fordi jeg vil bruge frames, er fordi før var dropdown menuen på samme side om tekst feltet. Jeg har nu lavet en uploade funktion, og jeg vil så have når der er uploadet noget skal dropdownen refreshes, og det er vel den eneste mulighed jeg har for det ved at smide dropdown i en frame og tekstfeltet, når jeg ikke ønsker det i tekstfeltet bliver slettet ved et refresh
Avatar billede nute Nybegynder
02. marts 2004 - 17:36 #10
jeg kan godt forstå at det er fordi du vil bruge frames ... ellers havde jeg vel ikke lavet en løsning til dig hvor du kan sende værdier fra den ene frame til den anden ;-)

som også roenving kommentere i det andet spm, så er det skrevet lidt uhænsigtsmæssigt.

men jeg har postet en løsning der du kan sende værdier fra den ene frame til den anden ... hvad andet er det du ønsker ?

/nute
Avatar billede vels Nybegynder
02. marts 2004 - 18:08 #11
***********************************
editor.php (har frame name editor)
***********************************
<html>
    <head>
        <title>LaTeX</title>
       
      <script language="JavaScript" type="text/javascript">
    <!--
    var objFocus = null;
    //-->
    </script>
   
   
   
   
   
   
   
    <script language="JavaScript" type="text/javascript">
    <!--
    function transferValue( objElement )
    {
        var objFocusElement = parent.document.frames['right'].objFocus;
        if( objFocusElement )
        {
            objFocusElement.value = objElement.selectedIndex
        }
    }
    //-->
    </script>

       
       
       
       
       
<script type="text/javascript">
var harFokus
var ie = (document.selection.createRange)?true:false
var elms = ['smiley','ting','andreTing'];

function lukAlt(elmid){
for(i=0;elms.length>i;i++)
  if(elmid!=elms[i])
    document.getElementById(elms[i]).style.display = "none";
}

function visTing(elmid){
lukAlt(elmid);
elm = document.getElementById(elmid);
elm.style.display = (elm.style.display!="block")?"block":"none";
}

function indsaet(smil){
if(ie){
  document.frm.tekst.focus();
  //if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  //}
}else
  document.frm.tekst.value += smil
}

function efter(){
document.frm.tekst.focus();
}

</script>
<style type="text/css">
.title{
    display:block;
    margin:0px;
    text-align:center;
    border-bottom:1px solid #000;
    background-color:#6777B3;
   
}
.luk{
float:right;


}
.ting{
    border:1px solid #000;
    position:absolute;
    height:100px;width:500px;
    display:none;
    }
</style>
    </head>

<body>
<form action="compile.php" method="post" name='frm'>
Filnavn:<br>
<input name="filnavn" value=".tex"><br>
Tekst<br>
<table width="100%"  border="0">
  <tr>
    <td width="80%">
    <textarea  style="width:800px;height:400px;" name="tekst">
\input{c:/www/preamble/preamble}
\begin{document}











{\footnotesize\bibliography{../bibtex/kildeliste}}
\end{document}




</textarea>

    </td>
 
  </tr>
</table>
<br><br>
<input type="submit" name="Compile" value="Compile"> <input type="reset" name="Rensfelter" value=Reset><br>
<a href="java script:void(0)" onclick="visTing('smiley');">Indsæt Matematik</a> | <a href="java script:void(0)" onclick="visTing('ting');">Greek</a> | <a href="java script:void(0)" onclick="visTing('andreTing');">Tydsk</a> <br>

<div id="smiley" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('smiley')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Matematik&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\frac{}{}')" onmouseup="efter();">Brøk</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('x^{}')" onmouseup="efter();">x^k</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('\\sqrt{}')" onmouseup="efter();">Kvadratrod</a>&nbsp;
</div>

<div id="ting" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('ting')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Greek</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>

<div id="andreTing" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('andreTing')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Tydsk&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>
<br><br><br><br>

 
</form>




<br>
</body>
</html>

********************************************
editor_menu.php (har framename editor_menu)
********************************************

<SCRIPT>
function link(side) {
  window.open(side, '', 'width=400, height=300');

}
</SCRIPT>   

<script language="JavaScript" type="text/javascript">
    <!--
    function transferValue( objElement )
    {
        var objFocusElement = parent.document.frames['editor'].objFocus;
        if( objFocusElement )
        {
            objFocusElement.value = objElement.selectedIndex
        }
    }
    //-->
    </script>



  <td width="20%" valign="top"><div align="left">Inds&aelig;t billede: </div>
   

   
   
   
    <form id="frm">
    <select id="sel" onchange="transferValue( this );">

<option value='\psfig{htb}{0.5}{1.eps}{billedtekfst}{henvisning}'>1.eps</option><option value='\psfig{htb}{0.5}{2.eps}{billedtekfst}{henvisning}'>2.eps</option><option value='\psfig{htb}{0.5}{3.eps}{billedtekfst}{henvisning}'>3.eps</option><option value='\psfig{htb}{0.5}{zones.eps}{billedtekfst}{henvisning}'>zones.eps</option><option value='\psfig{htb}{0.5}{g.eps}{billedtekfst}{henvisning}'>g.eps</option><option value='\psfig{htb}{0.5}{machin_jv.eps}{billedtekfst}{henvisning}'>machin_jv.eps</option><option value='\psfig{htb}{0.5}{zones_jv.eps}{billedtekfst}{henvisning}'>zones_jv.eps</option>  </select>
  </form>
    <br>
    <br>
    <a href=java script:link('uploadform.php')>Upload billede</A>

    </td>

***********
Forklaring
***********
Yeps det er rigtig at jeg efterspørger hvordan man sender værdien fra en dropdown i en frame til en anden.

Men værdien fra dropdown kan jeg ikke rigtig få indsat i mit textarea, som jeg f.eks. kan med "Greek" (prøv at trykke på greek i filen editor.php og det der kommer en lille menu frem i bunden, trykker du Gamma, inden har du placeret curseren i textareaet hvor gamma skal indsættes), men syndes ikke rigtig jeg kan det med dropdownen efter den er kommet i frame, og har indsat din kode.
Avatar billede vels Nybegynder
02. marts 2004 - 18:12 #12
det med at jeg skrev det virkede, var at når man valgt noget fra dropdownen, så slettede alt det andet der stod i textarea
Avatar billede nute Nybegynder
02. marts 2004 - 18:15 #13
hvis du bruger 2 sekunder på at se hvad jeg har postet, så kan du se at jeg sætter værdien i textarea med denne linje:

objFocusElement.value = objElement.selectedIndex

hvis du vil have at teksten bliver stående, så skal du jo bare lægge til den nye værdi:

objFocusElement.value += objElement.selectedIndex

/nute
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