[HTML/JavaScript] Scriptje laat tabel leeg

Pagina: 1
Acties:

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
Hallo,

In mijn website staat een tabel met inhoud, hierin wordt een agenda weergegeven. In die tabel van de agenda wil ik ook de datum laten zien, door middel van dit script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script language="JavaScript" type="text/javascript">
        <!--
          var now = new Date();
          var days = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');
          var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
          var months = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
          function fourdigits(number)   {
            return (number < 1000) ? number + 1900 : number;
          }
          today =  days[now.getDay()] + " " +
                date + "-" +              
            months[now.getMonth()] + "-" +
                (fourdigits(now.getYear())) ;
          document.write("" + today + " ");
        // -->
        </script>


Dit script komt op meerdere pagina's voor, op dezelfde plek, zelfde code, maar op deze pagina verwijderd hij de td, ik zie dus een leeg vlak..

de html code met het script:
code:
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
27
28
<td class="agenda" height="354" width="149">
    <div class="agendatitel">Agenda<hr><div class="datum">
        <script language="JavaScript" type="text/javascript">
        <!--
          var now = new Date();
          var days = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');
          var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
          var months = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
          function fourdigits(number)   {
            return (number < 1000) ? number + 1900 : number;
          }
          today =  days[now.getDay()] + " " +
                date + "-" +              
            months[now.getMonth()] + "-" +
                (fourdigits(now.getYear())) ;
          document.write("" + today + " ");
        // -->
        </script>
    </div><hr></div>
    <div class="agendacontent">
    <$
    type=include_file
    varname=include_agenda
    question=Vul de URL van de agenda in (standaard: 

/cms/publish/content/showpage.asp?themeid=28&fieldname1=datum&direction1=asc )
    $></div>
    </td>


de html code zonder het script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<td class="agenda" height="354" width="149">
    <div class="agendatitel">Agenda<hr><div class="datum">
        test
    </div><hr></div>
    <div class="agendacontent">
    <$
    type=include_file
    varname=include_agenda
    question=Vul de URL van de agenda in (standaard: 

/cms/publish/content/showpage.asp?themeid=28&fieldname1=datum&direction1=asc )
    $></div>
    </td>


in het laatste voorbeeld, waar ipv het script het woordje "test" staat, laat hij alles gewoon goed zien.. dus op de plaats van test moet de datum komen (het script dus) maar dan wordt alles gewist...

iemand een idee? het script is niet veranderd op de pagina's, overal hetzelfde script, maar hier pakt hij hem niet.. :'(

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
mmm ben er net achter gekomen dat hij het hele zootje in een ander tabel plaatst (behalve de datum overigens).. een HR en de agenda inhoud komt in de hoofdtabel te staan wanneer ik het script invoeg...

  • user109731
  • Registratie: Maart 2004
  • Niet online
Volgens mij voert document.write ook een document.open() uit, misschien dat daardoor dingen gewist worden? Ik denk dat je het sowieso beter met DOM functies kan doen ipv document.write, en dat je dan ook niet dit probleem hebt :) Like this:
JavaScript:
1
2
var deDiv = document.getElementById('datum');
deDiv.appendChild(document.createTextNode(today));

Hier ga ik er vanuit dat de div een id="agenda" heeft. Anders moet je op zoek gaan op basis van naam en class, kan ook wel maar is wat lastiger.

  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
uhm dat datum scriptje heb ik gewoon van internet afgeplukt..dus ik zou verder niet weten wat je bedoelt. :$

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Thrilled schreef op donderdag 09 november 2006 @ 10:07:
uhm dat datum scriptje heb ik gewoon van internet afgeplukt..dus ik zou verder niet weten wat je bedoelt. :$
Tja, dan heb je een probleem. Je zult zelf aan de gang moeten om het op te lossen of je ript een goed script ;)

  • user109731
  • Registratie: Maart 2004
  • Niet online
Zet dit eens tussen je <head> en </head>, en haal je oude script weg:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
function voegDatumToe() {
  var now = new Date();
  var days = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');
  var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
  var months = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
  var today =  days[now.getDay()] + " " + date + "-" + months[now.getMonth()] + "-" + (fourdigits(now.getYear())) ;

  var divs = document.getElementsByTagName('div');
  for(var i=0; i<divs.length; i++) {
    if (divs[i].className == 'datum') {
      divs[i].appendChild(document.createTextNode(today));
      break; 
    }
  }
}
function fourdigits(number)    {
  return (number < 1000) ? number + 1900 : number;
}
window.onload = voegDatumToe;
</script>

Doet dat wat jij wil? Je maakt dus eerst een datumstring zoals jij t zelf deed, zoekt dan alle divs op, en daarvan vergelijk je de class om te zien of die goed is. Als je een div gevonden hebt voeg je een textnode met de datum toe... (als je meer dan 1 <div class="datum"> hebt kun je de break weghalen :))

Verder wel met André, tis niet heel moeilijk mits je een goed boek/tutorial doorneemt :)

[ Voor 13% gewijzigd door user109731 op 09-11-2006 10:18 ]


  • Thrilled
  • Registratie: Februari 2004
  • Laatst online: 24-08-2024
ja hij werkt nu :) thnx
Pagina: 1