...

View Full Version : scriptlets



davidcat
03-21-2004, 06:46 PM
Does anyone now anything about scriptlets? I have been told it is possible to update db results on my webpage without refreshing the whole page using scriptlets. Im not really sure, I have this code which does it but I cant simplify it to my needs, I only need to update 2 records. this is the code I have:

<HTML>
<TITLE>Top Ten - Scriptlet</TITLE>

<SCRIPT language="VBscript" for="window" event="onload">InitPage</SCRIPT>

<SCRIPT language="JScript">

function Refresh() {

var rsTopTen
var strInner
var strCntInner
var ConnectionString

// Create the Recordset Object
rsTopTen = new ActiveXObject("ADODB.Recordset");

// Build the connection string
//
// ConnectionString Format below:
//ConnectionString = "DRIVER=SQL Server;SERVER=MySQLServer;CATALOG=MyDatabase;UID=U SERID;PWD=Password";
//
// for SQL 7.0:
//ConnectionString = "DRIVER=SQL Server;SERVER=TopTen;CATALOG=TopTen;UID=TopTen;PWD =TopTen";
//
// for Access Database (on Server):
//ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\\\\demwwwdev01\\develop\\im\\security\\Top Ten.mdb";
//
// for Access Database (on local drive):
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=C:\\TopTen\\TopTen.mdb";

// Build a SQL statement
strSQL = "SELECT TopTenName, TopTenCount FROM TopTen ORDER BY TopTenCount DESC";

// Open the recordset
rsTopTen.Open(strSQL, ConnectionString, 3,1,1);

// Set variable
var nCounter
nCounter = 0;

// Loop through the Recordset
while(!rsTopTen.EOF)
{

var nCount, strCount, strFormated

// Iterate the counter
nCounter++;

// Load variables from the Recordset
strName = rsTopTen.Fields.Item(0).Value;
nCount = rsTopTen.Fields.Item(1).Value;

// Set default value
if (nCount == null) {
nCount = 0;
}
else {

strCount = "";
strCount = new String(rsTopTen.Fields.Item(1).Value);

if ((strCount.length > 0) && (strCount.length < 4)) {
strFormated = strCount;
}
else if ((strCount.length > 3) && (strCount.length < 7)) {
strFormated = strCount.substring(0, strCount.length - 3) + "," + strCount.substring(strCount.length - 3, strCount.length);
}
else if ((strCount.length > 6) && (strCount.length < 10)) {
strFormated = strCount.substring(0, strCount.length - 6) + "," + strCount.substring(strCount.length - 6, strCount.length - 3) + "," + strCount.substring(strCount.length - 3, strCount.length);
}
else if ((strCount.length > 9) && (strCount.length < 13)) {
strFormated = strCount.substring(0, strCount.length - 9) + "," + strCount.substring(strCount.length - 9, strCount.length - 6) + "," + strCount.substring(strCount.length - 6, strCount.length - 3) + "," + strCount.substring(strCount.length - 3, strCount.length);
}
}

// Cleans it up a bit...
// puts the 1. 2. 3. etc...
if (nCounter < 10) {
strCntInner = "<font style='fontFamily: Verdana; fontSize: 8pt; margin: 2px' color=Black><b>&nbsp;&nbsp;" + nCounter + ". &nbsp;&nbsp;" + strName + "</b></font>";
}
else {
strCntInner = "<font style='fontFamily: Verdana; fontSize: 8pt; margin: 2px' color=Black><b>" + nCounter + ". &nbsp;&nbsp;" + strName + "</b></font>";
}
strInner = "<b><font style='fontFamily: Verdana; fontSize: 8pt; margin: 2px' color=Red><center>" + strFormated + "</center></font></b></font>";

// Sets the HTML in the Table Columns
if (nCounter == 1) {
One.innerHTML = strCntInner;
OneCount.innerHTML = strInner;
}
else if (nCounter == 2) {
Two.innerHTML = strCntInner;
TwoCount.innerHTML = strInner;
}
else if (nCounter == 3) {
Three.innerHTML = strCntInner;
ThreeCount.innerHTML = strInner;
}
else if (nCounter == 4) {
Four.innerHTML = strCntInner;
FourCount.innerHTML = strInner;
}
else if (nCounter == 5) {
Five.innerHTML = strCntInner;
FiveCount.innerHTML = strInner;
}
else if (nCounter == 6) {
Six.innerHTML = strCntInner;
SixCount.innerHTML = strInner;
}
else if (nCounter == 7) {
Seven.innerHTML = strCntInner;
SevenCount.innerHTML = strInner;
}
else if (nCounter == 8) {
Eight.innerHTML = strCntInner;
EightCount.innerHTML = strInner;
}
else if (nCounter == 9) {
Nine.innerHTML = strCntInner;
NineCount.innerHTML = strInner;
}
else if (nCounter == 10) {
Ten.innerHTML = strCntInner;
TenCount.innerHTML = strInner;
}
else if (nCounter > 10) {
break;
}

// Go to the next Record
rsTopTen.MoveNext();

};

// Close the Recordset
rsTopTen.Close();

}
</SCRIPT>

<SCRIPT language="VBscript">

Sub InitPage

' Show data at beginning
DoUpdatePage

' Are we in the scriptlet or is the user
' trying to access the page directly?
if InScriptlet then
window.external.selectableContent = True
end if

if mEnabled then
' Set the timer to run every second (1000 ms)!
mTimer = window.setInterval( "DoUpdatePage()", 1000, "VBScript" )
end if

End Sub


Sub DoUpdatePage
' Execute the script which fills the Table
window.execScript "Refresh();"
End Sub

</SCRIPT>


<SCRIPT language="JavaScript">

// declare the object interface
public_description = new CreatePage();
var InScriptlet = (typeof(window.external.version) == "string");

// set some variables
mEnabled = 1;
mTimer = 0

function CreatePage() {
this.Refresh = Refresh;
this.Enable = Enable;
}

function Enable (b) {

mEnabled = b;

if ( b ) {
// Are we in the scriptlet or is the user
// trying to access the page directly?
if (InScriptlet) {
// raise some events
window.external.raiseEvent ("OnStart", window.document);
}
}
else {
// Stop the timer
window.clearInterval(mTimer);
// Are we in the scriptlet or is the user
// trying to access the page directly?
if (InScriptlet) {
// raise some events
window.external.raiseEvent ("OnStart", window.document);
}
}

return 1;
}

</SCRIPT>

<BODY>

<TABLE border=0 cellpadding=0 cellspacing=0 width="100%">
<TR><TD ID=One></TD><TD ID=OneCount></TD></TR>
<TR><TD ID=Two></TD><TD ID=TwoCount></TD></TR>
<TR><TD ID=Three></TD><TD ID=ThreeCount></TD></TR>
<TR><TD ID=Four></TD><TD ID=FourCount></TD></TR>
<TR><TD ID=Five></TD><TD ID=FiveCount></TD></TR>
<TR><TD ID=Six></TD><TD ID=SixCount></TD></TR>
<TR><TD ID=Seven></TD><TD ID=SevenCount></TD></TR>
<TR><TD ID=Eight></TD><TD ID=EightCount></TD></TR>
<TR><TD ID=Nine></TD><TD ID=NineCount></TD></TR>
<TR><TD ID=Ten></TD><TD ID=TenCount></TD></TR>
</TABLE>

</BODY>
</HTML>

Any help would be appreciated

Cheers

David Catley

swmr
03-22-2004, 05:21 AM
Originally posted by davidcat
Does anyone now anything about scriptlets?
The Evolution of Scripting (http://www.microsoft.com/mind/1198/cutting/cutting1198.asp)



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum