Generating Dynamic HTML pages

V

Vanitha

Hi All,

I am developing a Web based application for an embedded target, using
BOA webserver.

I need to return some values to the HTML client. I am using CGI-C to
extract the values sent by the client from the server.

I dont want to generate the entire HTML page each time from the
server.'cos i need to refresh the status less than a second..

Is there a way for me to pass the Name,Value pairs alone to the HTML
client and using javascript i can assign the value to the HTML client
form.

I appreciate any inputs on this

Thanks
 
E

Erwin Moller

Vanitha said:
Hi All,

I am developing a Web based application for an embedded target, using
BOA webserver.

I need to return some values to the HTML client. I am using CGI-C to
extract the values sent by the client from the server.

I dont want to generate the entire HTML page each time from the
server.'cos i need to refresh the status less than a second..

Is there a way for me to pass the Name,Value pairs alone to the HTML
client and using javascript i can assign the value to the HTML client
form.

I appreciate any inputs on this

Thanks

Hi,

You could use a hidden frame for this.
It refreshes every 1 sec after loading (maybe using an onLoad function and a
window.setTimeout() ).

Make the page in the hidden frame small, so it IS generated dynamically (how
else), but it is just small.
You will need some serverside scripting to accomplish this.

Another approach would be to let the server write a new file that you
reload. COuld be plain HTML-file, but still the server is responsible to
write this file every time some data gets updated.

The file could contain something like this:

suppose this script is called: example1.html

<html>
<head>

<script type="text/javascript">
// this value is written dynamically
var newvalue=42;

// call some function in the frameset definition
parent.newValueSet(newvalue);

// reload this page in 1 second
setTimeout("location='example.html';" , 1000);
</script>

</head>
<body>
empty :)
</body>
</html>

Regards,
Erwin Moller
 
R

Remi Bastide

Hi All,

I am developing a Web based application for an embedded target, using
BOA webserver.

I need to return some values to the HTML client. I am using CGI-C to
extract the values sent by the client from the server.

I dont want to generate the entire HTML page each time from the
server.'cos i need to refresh the status less than a second..

Is there a way for me to pass the Name,Value pairs alone to the HTML
client and using javascript i can assign the value to the HTML client
form.

I appreciate any inputs on this
You could consider using the XML HTTP request object, see:
http://jibbering.com/2002/4/httprequest.html
 
V

vanitha

Erwin said:
Hi,

You could use a hidden frame for this.
It refreshes every 1 sec after loading (maybe using an onLoad function and a
window.setTimeout() ).

Make the page in the hidden frame small, so it IS generated dynamically (how
else), but it is just small.
You will need some serverside scripting to accomplish this.

Another approach would be to let the server write a new file that you
 
V

vanitha

Hi Erwin,

I actually dont want to use the second approach, since the HTML files
are developed by someone
else and i actually need to copy+paste the code to use printf's in my
"C" code to output
html. This is very tedious and i am not getting the images that are
used in the HTML files


Hence i want to use the second approach that you have mentioned, the
hidden frame approach
I actually have created a hidden frame using this code

<FRAMESET COLS="200%,*" framespacing="0">
<FRAME SRC="status.htm" NAME="mstatus" SCROLLING=AUTO>
<FRAME SRC="hidden.htm" NAME="hidden" SCROLLING=AUTO>
</FRAMESET>

And when the user clicks some button in status.htm,i am executing this
cgi


window.parent.hidden.location="http://10.0.0.10/cgi-bin/getstat.cgi


The cgi script is getting executed in the server side, but i dont know
how to send
the response from the server to the client and then how to update that
in the
status.htm file.

can you please let me know how to do the server side scripting. I am
bit
new to javascript, i am basically a "C" programmer.
 
V

vanitha

Hi Erwin,

I actually dont want to use the second approach, since the HTML files
are developed by someone
else and i actually need to copy+paste the code to use printf's in my
"C" code to output
html. This is very tedious and i am not getting the images that are
used in the HTML files


Hence i want to use the second approach that you have mentioned, the
hidden frame approach
I actually have created a hidden frame using this code

<FRAMESET COLS="200%,*" framespacing="0">
<FRAME SRC="status.htm" NAME="mstatus" SCROLLING=AUTO>
<FRAME SRC="hidden.htm" NAME="hidden" SCROLLING=AUTO>
</FRAMESET>

And when the user clicks some button in status.htm,i am executing this
cgi


window.parent.hidden.location="http://10.0.0.10/cgi-bin/getstat.cgi


The cgi script is getting executed in the server side, but i dont know
how to send
the response from the server to the client and then how to update that
in the
status.htm file.

can you please let me know how to do the server side scripting. I am
bit
new to javascript, i am basically a "C" programmer.
 
E

Erwin Moller

Hi Erwin,

I actually dont want to use the second approach, since the HTML files
are developed by someone
else and i actually need to copy+paste the code to use printf's in my
"C" code to output
html. This is very tedious and i am not getting the images that are
used in the HTML files


Hence i want to use the second approach that you have mentioned, the
hidden frame approach
I actually have created a hidden frame using this code

<FRAMESET COLS="200%,*" framespacing="0">

That is strange, you ment probably something like:
<FRAMESET COLS="*,0" framespacing="0">

So the hidden frame is invisible (0 pixels)

But this is not important for the functionality. :)
<FRAME SRC="status.htm" NAME="mstatus" SCROLLING=AUTO>
<FRAME SRC="hidden.htm" NAME="hidden" SCROLLING=AUTO>
</FRAMESET>

And when the user clicks some button in status.htm,i am executing this
cgi


window.parent.hidden.location="http://10.0.0.10/cgi-bin/getstat.cgi


The cgi script is getting executed in the server side, but i dont know
how to send
the response from the server to the client and then how to update that
in the
status.htm file.

can you please let me know how to do the server side scripting. I am
bit
new to javascript, i am basically a "C" programmer.

Well, what can I do for you?
I can help you a little with the setup, but I cannot give you excact code
because I don't know anything about the project.

I suggest you do the following:
1) Make sure you get some basic Javascript knowledge in.
Pay extra attention to:
a) Communication between different windows.
(Every html in a frame is considered a window.)
eg: parent.frames.hidden etc like you used already
Make sure you can pass basic values from 1 window to the next without any
serverside calls.
eg: To call a function in your frameset, use:
window.parent.someFunction();

Of course you need to define a function in your parentframe called that
name:

So to experiment start with this in your parentframe:
<FRAMESET COLS="*,0" framespacing="0">
<FRAME SRC="status.htm" NAME="mstatus" SCROLLING=AUTO>
<FRAME SRC="hidden.htm" NAME="hidden" SCROLLING=AUTO>
</FRAMESET>

<script type="text/javascript>
function someFunction(aNumber){
alert ("I received: "+aNumber);
}
</script>


b) Make sure you have a look at the function setTimeout()
You need this to keep polling your server for fresh results.

c) How to manipulate content on a webpage with javascript.

You were talking about forms, so here is an example:

html on a page:
<form action="bla.cgi" name="myForm">
<input type="text" name="age">
<input type="submit">
</form>

Now you can alter the content of the textelement that is named age as
follows:
document.forms["myForm"]["age"].value = 55;

If you want to manipulate existing text on the page instead of forms, ask
somebody else, because I never do that. :p


and 2)
Make sure you rewrite the page that is polled every second by the clients by
first making a simple page.
You can use the one I posted before as a basic template.
You ONLY have to make sure that the process serverside that updates the
information is parsing the right value on the place where I putted the 42.

And a last tip:
http://www.w3schools.com/ is a great place to check up some basic
webconcepts for starters.
http://www.w3schools.com/js/default.asp for example is a crashcourse on
Javascript, but you will find a lot more.

Since you are a C programmer, I think you should be able to master a lot
over there without too much pain. ;-)

Good luck,

Regards,
Erwin Moller
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,040
Latest member
papereejit

Latest Threads

Top