Toon posts:

Javascript innerHTML

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo,

Ben nu al een tijdje aan het zoeken op google en de verschillende javascript pagina's maar ik kan niks vinden over het volgende probleem.

Ik voeg rijen toe aan een formulier maar als ik wal waarden geef aan de formulier elementen dan worden deze bij het drukken op de link "extra rij" gereset in firefox. in IE heb ik het probleem niet.In de var $row zitten de formulier elementen
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function klikker(){
var d = new Date()
var ID = '' + d.getDate()+d.getMonth() +1+d.getFullYear()+d.getHours()+d.getMinutes()+d.getSeconds();

document.getElementById('mydiv').innerHTML = document.getElementById('mydiv').innerHTML +'<div id="'+ID+'"><?php echo $row; ?> <input type = "button" value = "Remove" onclick = "javascrip:remover('+ID+');"></div>'              
}

function remover(id){
document.getElementById(id).innerHTML = ''              
}
</script>

Hieronder de div waar de "html" in wordt gezet.
HTML:
1
2
3
4
5
<div id="mydiv">
<?php echo $row; ?>
</div><br>

<a href="#" onClick="javascrip:klikker();">extra rij</a>

Weet iemand wat ik kan doen aan het resetten van de formulier waarden na het klikken op "extra rij"

Alvast bedankt voor enige info!!

[ Voor 16% gewijzigd door Verwijderd op 10-05-2005 14:59 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Dat komt omdat je met innerHTML elke keer de inhoud opnieuw op je scherm zet (regel 6 1ste voorbeeld). Het is beter om dit met createElement en appendChild te doen. Zoek daar maar eens op.

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

createElement, appendChild, cloneNode is idd beter om te gebruiken..

Download my music on SoundCloud


Verwijderd

Topicstarter
Vet ga het gelijk proberen.

Verwijderd

Topicstarter
Ok werkt alleen uno problemo met de string

currenttext=document.createTextNode("<?php echo $row; ?>");

Poept hij volledige text uit wat eigenlijk html moet zijn hieronder een voorbeeld.

edit:

<select name="uur[]"><option value="355">350 - 0</option><option value="5">0 - 10</option><option value="25">20 - 30</option><option value="45">40 - 50</option><option value="65">60 - 70</option><option value="85">80 - 90</option><option value="105">100 - 110</option><option value="125">120 - 130</option><option value="145">140 - 150</option><option value="165">160 - 170</option><option value="185">180 - 190</option><option value="205">200 - 210</option><option value="225">220 - 230</option><option value="245">240 - 250</option><option value="265">


Hoe kan ik dit oplossen er is niet een createHtmlNode ;) dus wat dan?? moet makkelijk zijn heb er alleen geen ervaring mee. heb echt gezocht en geprobeerd.

Laatste loodje alvast bedankt _/-\o_

[ Voor 26% gewijzigd door Verwijderd op 10-05-2005 15:47 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Gebruik voor dat laatste innerHTML en het zou moeten werken :)

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 10:05

Cyphax

Moderator LNX
Verwijderd schreef op dinsdag 10 mei 2005 @ 15:46:
Ok werkt alleen uno problemo met de string

currenttext=document.createTextNode("<?php echo $row; ?>");

Poept hij volledige text uit wat eigenlijk html moet zijn hieronder een voorbeeld.

edit:
<select name="uur[]"><option value="355">350 - 0</option><option value="5">0 - 10</option><option value="25">20 - 30</option><option value="45">40 - 50</option><option value="65">60 - 70</option><option value="85">80 - 90</option><option value="105">100 - 110</option><option value="125">120 - 130</option><option value="145">140 - 150</option><option value="165">160 - 170</option><option value="185">180 - 190</option><option value="205">200 - 210</option><option value="225">220 - 230</option><option value="245">240 - 250</option><option value="265">


Hoe kan ik dit oplossen er is niet een createHtmlNode ;) dus wat dan?? moet makkelijk zijn heb er alleen geen ervaring mee. heb echt gezocht en geprobeerd.

Laatste loodje alvast bedankt _/-\o_
Sorry, mijn fout :)
Dit bedoelde je niet.
Met createTextNode krijg je altijd platte tekst inderdaad. :)
Je kunt natuurlijk ook naast wat André zegt PHP ook een javascript functie laten schrijven om die opties toe te voegen.
(javascript loopje)

[ Voor 57% gewijzigd door Cyphax op 10-05-2005 15:51 ]

Saved by the buoyancy of citrus


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 07-05 13:58

Pelle

🚴‍♂️

Euh, je zult aan dit soort dingen moeten denken:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    var a   = document.createElement('select');
    var b1  = document.createElement('option');
    var b2  = document.createElement('option');
    var c1  = document.createTextNode('woei');
    var c2  = document.createTextNode('waaa');
    
    b1.value = 'blaat';
    b2.value = 'melp';
    
    b1.appendChild(c1);
    b2.appendChild(c2);
      
    a.appendChild(b1);
    a.appendChild(b2);
    
    document.body.appendChild(a);

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 07-05 13:58

Pelle

🚴‍♂️

André, innerHTML is vies!

Verwijderd

Topicstarter
edit:
laat dit nog maar ff zitten ik was net aan het typen toen de posts binnen kwamen die ga ik eerst ff proberen


ok ik voel me net een rubiks cube noob want dit gaat niet helemaal lekker.

heb de volgende optie geprobeerd:

currenttext=document.createTextNode.innerHTML='<?php echo $row; ?>';
currenttext=document.innerHTML='<?php echo $row; ?>';
currenttext=innerHTML='<?php echo $row; ?>';
currenttext=document.createTextNode(innerHTML='<?php echo $row; ?>'); // deze geeft weer text

hieronder het script wat ik gebruik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
    function start() {
         var mybody=document.getElementsByTagName("body").item(0);
            mytable = document.createElement("TABLE");
            mytablebody = document.createElement("TBODY");
            for(j=0;j<1;j++) {
                mycurrent_row=document.createElement("TR");
                for(i=0;i<1;i++) {
                    mycurrent_cell=document.createElement("TD");
                    currenttext=document.createTextNode.innerHTML='<?php echo $row; ?>';
                    mycurrent_cell.appendChild(currenttext);
                    mycurrent_row.appendChild(mycurrent_cell);
                }
                mytablebody.appendChild(mycurrent_row);
            }
            mytable.appendChild(mytablebody);
            mybody.appendChild(mytable);
            mytable.setAttribute("border","1");
    }
</script>


is dit uberhaupt wel goed? het werkte wel net, alleen hij gaf tekst ipv mooie form elementjes!!

[ Voor 39% gewijzigd door Verwijderd op 10-05-2005 16:00 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Dat was ook mijn eerste reactie in dit topic ;)

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 10:05

Cyphax

Moderator LNX
Verwijderd schreef op dinsdag 10 mei 2005 @ 15:58:
edit:
laat dit nog maar ff zitten ik was net aan het typen toen de posts binnen kwamen die ga ik eerst ff proberen


ok ik voel me net een rubiks cube noob want dit gaat niet helemaal lekker.

heb de volgende optie geprobeerd:

currenttext=document.createTextNode.innerHTML='<?php echo $row; ?>';
currenttext=document.innerHTML='<?php echo $row; ?>';
currenttext=innerHTML='<?php echo $row; ?>';
currenttext=document.createTextNode(innerHTML='<?php echo $row; ?>'); // deze geeft weer text

hieronder het script wat ik gebruik:
code:
1
currenttext=document.createTextNode.innerHTML='<?php echo $row; ?>';


is dit uberhaupt wel goed? het werkte wel net, alleen hij gaf tekst ipv mooie form elementjes!!
Dat klopt niet. :)
Ik heb 'm even ietwat bewerkt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    function start() 
    {
      var body=document.getElementsByTagName("body").item(0);
      table = document.createElement("table");
      tablebody = document.createElement("tbody");
      for(j=0;j<1;j++) 
      {
        var row = document.createElement("tr");
        for(i=0;i<1;i++) 
        {
          var cell=document.createElement("TD");
          cell.appendChild(document.createTextNode('echo $row;'));
          row.appendChild(cell);
        }
        tablebody.appendChild(row);
      }
      table.appendChild(tablebody);
      body.appendChild(table);
      table.setAttribute("border","1");
    }

Dit werkt gewoon. Maar die "i<1" en "j<1" moet je nog dynamisch maken. Tenzij je graag 1 kolom en 1 rij hebt. :P
Ben je ook van innerHTML af (speciaal voor Pelle natuurlijk).
'k wou dat die "trend" van alle variabelen prefixen met "my" er nooit geweest was, wat irritant zeg... "myTable", as opposed to "yourTable" zeker... pff. (schuld van Microsoft :P)

[ Voor 33% gewijzigd door Cyphax op 10-05-2005 16:13 ]

Saved by the buoyancy of citrus


Verwijderd

Topicstarter
Cyphax schreef op dinsdag 10 mei 2005 @ 16:10:
[...]

Dat klopt niet. :)
Ik heb 'm even ietwat bewerkt.
code:
1
cell.appendChild(document.createTextNode('echo $row;'));


Dit werkt gewoon. Maar die "i<1" en "j<1" moet je nog dynamisch maken.
Helaas werkt ook niet krijg weer alleen tekst, moet denk ik echt een loopie maken, die dynamische tabel elementen had ik gelukkig al gezien iig bedankt :)

Verwijderd

Topicstarter
Ik ben ff lekker vies bezig geweest ;) en hier is het dan... had geen zin in loopjes en dingen. Had je toch gelijk André.. thanks

Mijn dank is groot!! _/-\o_

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script>  
    function start() 
    { 
    
      var t = document.createElement('div');
      t.innerHTML = '<?php echo $row; ?>';

      var body=document.getElementsByTagName("body").item(0);
      table = document.createElement("table");
      tablebody = document.createElement("tbody");
      for(j=0;j<1;j++) 
      {
        var row = document.createElement("tr");
        for(i=0;i<1;i++) 
        {
          var cell=document.createElement("TD");
          cell.appendChild(t);
          row.appendChild(cell);
        }
        tablebody.appendChild(row);
      }
      table.appendChild(tablebody);
      body.appendChild(table);
      table.setAttribute("border","1");
    }
</script>

[ Voor 11% gewijzigd door Verwijderd op 10-05-2005 16:43 ]

Pagina: 1