...

View Full Version : Refresh a call to an external function



WilliamHolmes
06-14-2007, 02:17 PM
Hi,

Within my webpage i have the following...

<TABLE >
<TR><TD>
<%
Call ShowActiveUsersList ()
%>
</TD></TR>
<tr><Td>
<a href="#">Refresh</a>
</Td></tr>
</TABLE>

The call produces a table with data in it and what i want to do is click on "Refresh" and refresh the table (or Call ShowActiveUsersList ()) WITHOUT refreshing the whole page.

Any ideas?

Daemonspyre
06-14-2007, 04:29 PM
AJAX could do this for you, but it can be complicated.

You could also try putting the CALL procedure onto its own page and using an IFRAME.



<table>
<tr><td><iframe src="newPageWithCall.asp" frameborder="0"></td></tr>
</table>


newPageWithCall.asp



<html>
<body>
<table><tr><td><% Call ShowActiveUsersList() %></td></tr></table>
<p><a href="javascript:;" onclick="window.location.reload();">Refresh</a></p>
</body>
</html>


This way, the IFRAME refreshes without refreshing the parent page.

HTH!

WilliamHolmes
06-14-2007, 05:39 PM
Thanks BUT the table is not of a fixed width or height and i dont really want an iframe to be either. sometimes the table is the full width of the page but i dont want the iframe to be fixed to that width.

Is there anyway to have the iframe adjustable eg. width= * height= *

I would love it if i could get the iframe to resize to the same size as the table thats in it.

Daemonspyre
06-14-2007, 05:43 PM
OK, so I admit that I was wrong about dynamically sized IFRAMEs. Sorry!

Here's some JS code that will dynamically resize your IFRAME no matter how big it is based on the SRC URL.

Thank you Dynamic Drive + Google!



<head>
<script type="text/javascript">

/***********************************************
* IFrame SSI script II- Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["myframe"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight;
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller

</script>
</head>
<body>
<iframe id="myframe" frameborder="0" src="test2.asp" scrolling="no" marginheight="0" marginwidth="0" style="width: 100%; display: none; overflow: visible;"></iframe>
</body>


Here's the link to the original code: http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm

WilliamHolmes
06-14-2007, 06:19 PM
Na thats doesnt seem to work.

I just dont think iframe is the answer.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum