HTML and javascript weirdness

Thread Starter

Chris11jed

Joined Dec 15, 2013
16
Hello all,

I have been toying around with a piece of code I can't get right. And have had some strange stuff with.
The idea is to get a webserver run on a WiFi capable PIC to display a page. On the page is measurements and time/date (all values will be from the PIC) but for now i have these values in the HTML/javascript code as I design the page with Notepad++

I have the page roughly how I want it to look. The functionality works 9 out of 10. As you will see the button 'Refresh All (Measurements Time Date)' when pressed should cycle through values. When the PIC will run this button will call to the PIC to get new values and the page will be updated by the getElementById (as is already in the cycle function)

The other two buttons make sure the reset values have all been filled out before clicking the 'Reset Values' button. These two buttons do what they should for now. Again when the PIC is running this the 'Reset Values' button will send a string to the PIC to reset those values (I have yet to code that here)
The question I have is why the 'Refresh All' cycle code will not work. In other projects/code I can get this to work, but not here. So any help in what's stopping it would be great.

And the other questions I have is to do with the functions in javascript. I would like to move them all up into the header section. But if i do none of the buttons will do anything, so i leave the code close to where it's doing things. What's up with that?

Cheers
Chris

Here's the code as it is now:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
    <HEAD>
        <TITLE>
            Build 2 WD Rebuild
        </TITLE>
        <STYLE>
            BODY {background-color:Orange;
                                color:Black;
                            text-indent:26px;}
            H1 {text-align:center;}
           
            #THmesRes {background-color:yellow;}
            #TDTldrw {background-color:#ccccff;}
            #dLDRW {background-color:white;}
            #TDTldrb {background-color:#666666;}
            #dLDRB {background-color:white;}
            #TDTbatt {background-color:#33cc00;}
            #dBATT {background-color:white;}
            #TDTlm35 {background-color:#ff0000;}
            #dLM35 {background-color:white;}
           
            #THtdtRes {background-color:yellow;}
            #TDTtime {background-color:#cc33cc;}
            #dTIME {background-color:white;
                        text-align:center;}
            #TDTwkd {background-color:#000099;
                            text-align:center;
                                color:yellow;}
            #dWD {text-align:center;}
            #TDTdate {background-color:#3333ff}
            #dDATE {background-color:white;
                        text-align:center;}
            #TDBTNrefall {background-color:#B20000;
                                text-align:center;}
                       
            #THrstRTC {background-color:#9900CC;}
            #THselTime {background-color:#0000CC;}
            #TRhrmin {background-color:#0066FF;
                            text-align:center;}
            #THTselDt {background-color:#009900;
                                    color:black;}
            #TDyrin {background-color:#00CC00;}
            #TDmthsel {background-color:#00CC00;}
            #TDdayin {background-color:#00CC00;}
            #THTselwdrst {background-color:#B80000;   
                                    color:black;}
            #TDwkdaysel {background-color:#E60000;
                                text-align:center;}
            #TRFchkrstval {text-align:center;}
            #TDBTNchkrstval {background-color:#000066}
            #TDrstResSpan {background-color:#0000CC;
                                    color:#C8C8C8;}
            #TRFsendrst {text-align:center;}
            #TDBTNpicrstval {background-color:#000066;}
            #TDd8 {background-color:#0000CC;
                            color:#C8C8C8;}
        </STYLE>
        <SCRIPT>
            var RSTCK = 0;
            var WD = 7;
            var iR = 0;
            var LDRW  = new Array('0.978','2.615','3.291','4.951');
            var LDRB  = new Array('1.285','2.974','3.962','4.987');
            var LM35  = new Array('22.5','24.2','26.5','34.7');
            var BATT  = new Array('10.95','11.27','12.04','12.95');
            var HR    = new Array('10','01','23','18');
            var MIN   = new Array('35','21','56','06');
            var DAY   = new Array('20','03','29','15');
            var MTH   = new Array('01','08','10','11');
            var YR    = new Array('09','12','15','20');
            var WkDay = new Array('<TD colspan=2 bgcolor=#993399>Err</TD>',
            '<TD colspan=2 bgcolor=#000099><FONT color=white>MONDAY</FONT></TD>',
            '<TD colspan=2 bgcolor=#9900cc>TUESDAY</TD>',
            '<TD colspan=2 bgcolor=#ff9933>WEDNESDAY</TD>',
            '<TD colspan=2 bgcolor=#ffff66>THURSDAY</TD>',
            '<TD colspan=2 bgcolor=#33ff00>FRIDAY</TD>',
            '<TD colspan=2 bgcolor=#00cc00>SATURDAY</TD>',
            '<TD colspan=2 bgcolor=#33cccc>SUNDAY</TD>');
           
            var RSTahr;
            var RSTamin;
            var RSTaday;
            var RSTamth;
            var RSTayr;
            var RSTawd;
        </SCRIPT>
    </HEAD>
    <BODY>
        <H1>
            Welcome to "Build 2 WD Rebuild"...
        </H1>
        <TABLE align=center border=1 style='font-size:20px; font-family:terminal;'>
            <TR>
                <TD>
                    <TABLE colspan=2>
                        <TR>
                            <TH colspan=2 id='THmesRes'>
                                <B>Measurements Results:</B>
                            </TH>
                        </TR>
                        <TR>
                            <TD id='TDTldrw'>
                                LDR WHITE:
                            </TD>
                            <TD id='dLDRW'>
                                <SCRIPT>
                                    document.write(LDRW[iR]);
                                </SCRIPT> /5
                            </TD>
                        </TR>
                        <TR>
                            <TD id='TDTldrb'>
                                LDR BLACK:
                            </TD>
                            <TD id='dLDRB'>
                                <SCRIPT>
                                    document.write(LDRB[iR]);
                                </SCRIPT> /5
                            </TD>
                        </TR>
                        <TR>
                            <TD id='TDTbatt'>
                                12V BATTERY:
                            </TD>
                            <TD id='dBATT'>
                                <SCRIPT>
                                    document.write(BATT[iR]);
                                </SCRIPT> V
                            </TD>
                        </TR>
                        <TR>
                            <TD id='TDTlm35'>
                                TEMP:
                            </TD>
                            <TD id='dLM35'>
                                <SCRIPT>
                                    document.write(LM35[iR]);
                                </SCRIPT> &#176C
                            </TD>
                        </TR>
                    </TABLE>
                </TD>
                <TD>
                    <TABLE colspan=2>
                        <TR>
                            <TH colspan=2 id='THtdtRes'>
                                <B>TIME/DATE/TEMP</B>
                            </TH>
                        </TR>
                        <TR>
                            <TD id='TDTtime'>
                                TIME (24Hr):
                            </TD>
                            <TD id='dTIME'>
                                <SCRIPT>
                                    document.write(HR[iR]);
                                </SCRIPT> :
                                <SCRIPT>
                                    document.write(MIN[iR]);
                                </SCRIPT>
                            </TD>
                        </TR>
                        <TR>
                            <TD colspan=2 id='TDTwkd'>
                                Week Day:
                            </TD>
                        </TR>
                        <TR id='dWD'>
                                <SCRIPT>
                                    document.write(WkDay[WD]);
                                </SCRIPT>
                        </TR>
                        <TR>
                            <TD id='TDTdate'>
                                DATE:
                            </TD>
                            <TD id='dDATE'>
                                20<SCRIPT>document.write(YR[iR]);</SCRIPT> /
                                <SCRIPT>document.write(MTH[iR]);</SCRIPT> /
                                <SCRIPT>document.write(DAY[iR]);</SCRIPT>
                            </TD>
                        </TR>
                    </TABLE>
                </TD>
            </TR>
            <SCRIPT>
            function refreshBTN(){
                iR = (iR + 1);
                if (iR == 4){
                    iR = 0;
                };
               
                WD = (WD + 1);
                if (WD == 8){
                    WD = 1;
                };
               
                var xldrw = LDRW[iR].concat(' /5');
                var xldrb = LDRB[iR].cocat(' /5');
                var xbatt = BATT[iR].concat(' V');
                var xlm35 = LM35[iR].concat(' &#176C');
                var xtime = HR[iR].concat(' : ', MIN[iR]);
                var xdate = '20'.concat(YR[iR], ' / ', MTH[iR], ' / ', DAY[iR]);
               
                document.getElementById('dLDRW').innerHTML = xldrw;
                document.getElementById('dLDRB').innerHTML = xldrb;
                document.getElementById('dBATT').innerHTML = xbatt;
                document.getElementById('dLM35').innerHTML = xlm35;
                document.getElementById('dTIME').innerHTML = xtime;
                document.getElementById('dDATE').innerHTML = xdate;
                document.getElementById('dWD')innerHTML = WkDay[WD];
            };
            </SCRIPT>
            <TR>
                <TD colspan=4 id='TDBTNrefall'>
                    <BUTTON type='button' onclick='refreshBTN();'>
                        Refresh All Results (Measurements, Time, WeekDay and Date)
                    </BUTTON>
                </TD>
            </TR>
        </TABLE>
        <TABLE colspan=6 border=1 align=center width=95% style='font-size:20px; font-family:terminal;'>
            <TR>
                <TH colspan=6 id='THrstRTC'>
                    Reset RTC
                </TH>
            </TR>
            <TR>
                <FORM ID='RTCForm'>
                <TR>
                    <TH colspan=6 id='THselTime'>
                        Select: Time Reset
                    </TH>
                </TR>
                <TR id='TRhrmin'>
                    <TD colspan=3>
                        (24HR Format)
                            <br/>
                        Hours (0-23):
                            <input type='number' name='TIME' id='RST24' min=0 max=23 value='13' size='2' />
                    </TD>
                    <TD colspan=3>
                        Minutes (0-59):
                            <input type='number' name='TIME' id='RSTMIN' min=0 max=59 value='30' size='2' />
                    </TD>
                </TR>
                <TR>
                    <TH colspan=6 id='THTselDt'>
                        Select: Date Reset
                    </TH>
                </TR>
                <TR>
                    <TD colspan=2 id='TDyrin'>
                        Year (0-99): 20
                            <input type='number' name='DATE'id='RSTYR' min=0 max=99 value='15'  size='2'/>
                    </TD>
                    <TD colspan=2 id='TDmthsel'>
                        Month:
                        <SELECT name='DATE'id='RSTMTH'>
                            <option value='SV';>-select-</option>
                            <option value='01';>January</option>
                            <option value='02';>February</option>
                            <option value='03';>March</option>
                            <option value='04';>April</option>
                            <option value='05';>May</option>
                            <option value='06';>June</option>
                            <option value='07';>July</option>
                            <option value='08';>August</option>
                            <option value='09';>September</option>
                            <option value='10';>October</option>
                            <option value='11';>November</option>
                            <option value='12';>December</option>
                        </SELECT>
                    </TD>
                    <TD colspan=2 id='TDdayin'>
                        Day (1-31):
                            <input type='number' Name='DATE'id='RSTDAY' min=1 max=31 value='16' size='2' />
                    </TD>
                </TR>
                <TR>
                    <TH colspan=6 id='THTselwdrst'>
                        Select: Week Day Name Reset
                    </TH>
                </TR>
                <TR>
                    <TD colspan=6 id='TDwkdaysel'>
                        Weekday:
                        <SELECT name='DATE'id='RSTWD' size='1'>
                            <option value='S';>-select-</option>
                            <option value='1';>Monday</option>
                            <option value='2';>Tuesday</option>
                            <option value='3';>Wednesday</option>
                            <option value='4';>Thursday</option>
                            <option value='5';>Friday</option>
                            <option value='6';>Saturday</option>
                            <option value='7';>Sunday</option>
                        </SELECT>
                    </TD>
                </FORM>
                </TR>
                <TR colspan=6 id='TRFchkrstval'>
            <SCRIPT>
            function CHKrstVal() {
                RSTahr =  document.getElementById('RST24').value;
                switch(RSTahr){
                    case '1':
                        document.getElementById('d1').innerHTML = '01';
                        RSTahr = '01';
                        break;
                    case '2':
                        document.getElementById('d1').innerHTML = '02';
                        RSTahr = '02';
                        break;
                    case '3':
                        document.getElementById('d1').innerHTML = '03';
                        RSTahr = '03';
                        break;
                    case '4':
                        document.getElementById('d1').innerHTML = '04';
                        RSTahr = '04';
                        break;
                    case '5':
                        document.getElementById('d1').innerHTML = '05';
                        RSTahr = '05';
                        break;
                    case '6':
                        document.getElementById('d1').innerHTML = '06';
                        RSTahr = '06';
                        break;
                    case '7':
                        document.getElementById('d1').innerHTML = '07';
                        RSTahr = '07';
                        break;
                    case '8':
                        document.getElementById('d1').innerHTML = '08';
                        RSTahr = '08';
                        break;
                    case '9':
                        document.getElementById('d1').innerHTML = '09';
                        RSTahr = '09';
                        break;
                    default:
                        document.getElementById('d1').innerHTML = RSTahr;
                        break;
                };
                                                   
                RSTamin =  document.getElementById('RSTMIN').value;
                switch(RSTamin){
                    case '1':
                        document.getElementById('d2').innerHTML = '01';
                        RSTamin = '01';
                        break;
                    case '2':
                        document.getElementById('d2').innerHTML = '02';
                        RSTamin = '02';
                        break;
                    case '3':
                        document.getElementById('d2').innerHTML = '03';
                        RSTamin = '03';
                        break;
                    case '4':
                        document.getElementById('d2').innerHTML = '04';
                        RSTamin = '04';
                        break;
                    case '5':
                        document.getElementById('d2').innerHTML = '05';
                        RSTamin = '05';
                        break;
                    case '6':
                        document.getElementById('d2').innerHTML = '06';
                        RSTamin = '06';
                        break;
                    case '7':
                        document.getElementById('d2').innerHTML = '07';
                        RSTamin = '07';
                        break;
                    case '8':
                        document.getElementById('d2').innerHTML = '08';
                        RSTamin = '08';
                        break;
                    case '9':
                        document.getElementById('d2').innerHTML = '09';
                        RSTamin = '09';
                        break;
                    default:
                        document.getElementById('d2').innerHTML = RSTamin;
                        break;
                };
                                                   
                RSTayr =  document.getElementById('RSTYR').value;
                switch(RSTayr){
                    case '1':
                        document.getElementById('d3').innerHTML = '01';
                        RSTayr = '01';
                        break;
                    case '2':
                        document.getElementById('d3').innerHTML = '02';
                        RSTayr = '02';
                        break;
                    case '3':
                        document.getElementById('d3').innerHTML = '03';
                        RSTayr = '03';
                        break;
                    case '4':
                        document.getElementById('d3').innerHTML = '04';
                        RSTayr = '04';
                        break;
                    case '5':
                        document.getElementById('d3').innerHTML = '05';
                        RSTayr = '05';
                        break;
                    case '6':
                        document.getElementById('d3').innerHTML = '06';
                        RSTayr = '06';
                        break;
                    case '7':
                        document.getElementById('d3').innerHTML = '07';
                        RSTayr = '07';
                        break;
                    case '8':
                        document.getElementById('d3').innerHTML = '08';
                        RSTayr = '08';
                        break;
                    case '9':
                        document.getElementById('d3').innerHTML = '09';
                        RSTayr = '09';
                        break;
                    default:
                        document.getElementById('d3').innerHTML = RSTayr;
                        break;
                };
                                                       
                RSTamth =  document.getElementById('RSTMTH').value;
                switch(RSTamth){
                    case '01':
                        document.getElementById('d4').innerHTML = 'JANUARY';
                        RSTCK = 1;
                        break;
                    case '02':
                        document.getElementById('d4').innerHTML = 'FEBRUARY';
                        RSTCK = 1;
                        break;
                    case '03':
                        document.getElementById('d4').innerHTML = 'MARCH';
                        RSTCK = 1;
                        break;
                    case '04':
                        document.getElementById('d4').innerHTML = 'APRIL';
                        RSTCK = 1;
                        break;
                    case '05':
                        document.getElementById('d4').innerHTML = 'MAY';
                        RSTCK = 1;
                        break;
                    case '06':
                        document.getElementById('d4').innerHTML = 'JUNE';
                        RSTCK = 1;
                        break;
                    case '07':
                        document.getElementById('d4').innerHTML = 'JULY';
                        RSTCK = 1;
                        break;
                    case '08':
                        document.getElementById('d4').innerHTML = 'AUGUST';
                        RSTCK = 1;
                        break;
                    case '09':
                        document.getElementById('d4').innerHTML = 'SEPTEMBER';
                        RSTCK = 1;
                        break;
                    case '10':
                        document.getElementById('d4').innerHTML = 'OCTOBER';
                        RSTCK = 1;
                        break;
                    case '11':
                        document.getElementById('d4').innerHTML = 'NOVEMBER';
                        RSTCK = 1;
                        break;
                    case '12':
                        document.getElementById('d4').innerHTML = 'DECEMBER';
                        RSTCK = 1;
                        break;
                    case 'SV':
                        document.getElementById('d4').innerHTML = 'ERR';
                        RSTCK = 255;
                        break;
                };
                                                       
                RSTaday =  document.getElementById('RSTDAY').value;
                switch(RSTaday){
                    case '1':
                        document.getElementById('d5').innerHTML = '1';
                        RSTaday = '01';
                        break;
                    case '2':
                        document.getElementById('d5').innerHTML = '2';
                        RSTaday = '02';
                        break;
                    case '3':
                        document.getElementById('d5').innerHTML = '3';
                        RSTaday = '03';
                        break;
                    case '4':
                        document.getElementById('d5').innerHTML = '4';
                        RSTaday = '04';
                        break;
                    case '5':
                        document.getElementById('d5').innerHTML = '5';
                        RSTaday = '05';
                        break;
                    case '6':
                        document.getElementById('d5').innerHTML = '6';
                        RSTaday = '06';
                        break;
                    case '7':
                        document.getElementById('d5').innerHTML = '7';
                        RSTaday = '07';
                        break;
                    case '8':
                        document.getElementById('d5').innerHTML = '8';
                        RSTaday = '08';
                        break;
                    case '9':
                        document.getElementById('d5').innerHTML = '9';
                        RSTaday = '09';
                        break;
                    default:
                        document.getElementById('d5').innerHTML = RSTaday;
                        break;
                };
                                                   
                RSTawd =  document.getElementById('RSTWD').value;   
                switch(RSTawd){
                    case '1':
                        document.getElementById('d6').innerHTML = 'Monday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '2':
                        document.getElementById('d6').innerHTML = 'Tuesday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '3':
                        document.getElementById('d6').innerHTML = 'Wednesday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '4':
                        document.getElementById('d6').innerHTML = 'Thursday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '5':
                        document.getElementById('d6').innerHTML = 'Friday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '6':
                        document.getElementById('d6').innerHTML = 'Saturday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case '7':
                        document.getElementById('d6').innerHTML = 'Sunday';
                        RSTCK = (RSTCK || 1);
                        break;
                    case 'S':
                        document.getElementById('d6').innerHTML = 'Err';
                        RSTCK = 255;
                        break;
                };
                if (RSTCK == 0) {
                    RSTCK = 1;
                };
            };
            </SCRIPT>
                    <TD colspan=1 id='TDBTNchkrstval'>
                        <BUTTON onclick='CHKrstVal();'>
                            Check Reset Values
                        </BUTTON>       
                    </TD>
                    <TD colspan=5 id='TDrstResSpan'>
                            Reset Time:
                                <span id='d1'>
                                    na
                                </span> :
                                <span id='d2'>
                                    na
                                </span>
                            &nbsp;   
                            Reset Date: 20
                                <span id='d3'>
                                    na
                                </span> /
                                <span id='d4'>
                                    na
                                </span> /       
                                <span id='d5'>
                                    na
                                </span>
                            &nbsp;
                            Reset Week Day:
                                <span id='d6'>
                                    na
                                </span>
                    </TD>
                </TR>   
                <TR colspan=6 id='TRFsendrst'>
            <SCRIPT>
            function SendRST() {
                var messageToPic;                               
                if(RSTCK == 0) {
                    messageToPic = 'Check selection first';
                    document.getElementById('d8').innerHTML = messageToPic;
                };
                if(RSTCK != 0) {
                    if(RSTCK == 1) {
                        messageToPic = 'Hr='.concat(RSTahr,
                                        'Min=', RSTamin,
                                        'Yr=', RSTayr,
                                        'Mth=', RSTamth,
                                        'Day=', RSTaday,
                                        'WD=', RSTawd);                       
                        document.getElementById('d8').innerHTML = messageToPic;
                    };
                    if(RSTCK == 255) {
                        messageToPic = 'Select MTH/WD then Check Selection';
                        document.getElementById('d8').innerHTML = messageToPic;
                    };
                };
            };
            </SCRIPT>
                    <TD colspan=1 id='TDBTNpicrstval'>
                        <BUTTON onclick='SendRST();'>
                            Reset Values
                        </BUTTON>
                    </TD>
                    <TD colspan= 5 id='TDd8'>
                        <SPAN id='d8'>
                            Reset dialogue
                        </SPAN>
                    </TD>
                </TR>
            </TR>
        </TABLE>
    </BODY>
</HTML>
 

Thread Starter

Chris11jed

Joined Dec 15, 2013
16
I have seen the error of my many ways (a hobbyist/learner...) and have changed the code and it works.
I had a few spelling errors and have shortened that long 'switch' loaded function with better code too.

Thanks for the forums time...
Chris
 

sirch2

Joined Jan 21, 2013
1,037
It is usual practice to put all the javascript in one place (usually the header block) it is easier to edit and read. Remember that the Refresh button click occurs on in the web browser so it needs to send a request to the PIC to get fresh data.
 
Top