PDA

View Full Version : Javascript e asp


Carmen
18-05-2004, 13:58
Ciao;

Nell file che allego si trova un esempio in JavaScript per fare ruotare una lista di banner.

Visto che di javascript ne capisca ben pochino, volevo chiedervi se fosse possibile implementare questo script estraendo la stringa dei banner e url che dovranno girare da un database invece di dover intervenire sempre via codice...


Grazie a chi potrà aiutarmi...

McK
18-05-2004, 16:23
Fare l'estrazione di dati da un database via JavaScript è impossibile. Perchè viene eseguito direttamente sul client che richiede la pagine (è un client side), mentre per poter accedere al database la pagina deve essere compilata lato server side.

Visto che usi ASP puoi fare un mix delle due cose, al caricamento della pagina passi una serie di url delle immagini allo script javascript (estrai i dati dal database attraverso ASP) e il javascript (premetto che non ho guardato il tuo), si occuperà solo di far girare le immagini che gli passi.

Il principio di funzionamento dovrebbe essere + o meno questo.
1) Richiesta pagina ASP al server
2) Vengono estratti X banner da far ruotare dal database
3) Compilazione della pagina
4) Invio al client

A questo punto ti trovi con una pagina HTML in cui è contenuta la tua funzione java per i banner alla quale avrai già passato 10 url con relativi banner.

Mi rendo conto di averla spiegata un po' col culo :D , ma è forse l'unico modo che hai per non dover editare a mano ogni volta il codice della pagina. La rendi semplicemente dinamica lato server perchè, come ho detto prima, farla lato client è impossibile.

Ciao, McK

Carmen
18-05-2004, 17:24
Ciao,

Infatti io volevo fare un mix di asp e java. Se dai uno sguardo bene all'allegato che avevo postato io dovrei con l'asp poter sostituire nel codice java quelle che solo le poche righe fondamentali e più precisamente lista delle immagini, url associato ad ogni immagine, e tempo di scambio fra l'immagine.

Il mio probleme e che non sò come sostituire (tagliare le parti di java ed al loro posto inserire le stringhe prelevati dal db)


Help???? :muro: :muro:

McK
18-05-2004, 17:38
bè provo ad aiutarti, anche se di ASP non so praticamente nulla (ti spiego con sintassi PHP, poi adattala tu ;))

La parte importante del tuo codice, o meglio quella che deve essere variabile è:

//add your necessary URL's
urlArray[0] = "http://javascript.internet.com";
urlArray[1] = "http://www.programmersheaven.com";
urlArray[2] = "http://www.ittoolbox.com";

if(document.images) //pre-load all banner images
{
for(i = 0; i < 3; i++)
{
banArray[i] = new Image(468, 60);
banArray[i].src = "banners/banner" + (i+1) + ".jpg";
}
}


La modifica da fare è + o meno questa:

//Seleziona gli n elementi dal DB e te li memorizzi in un array
$result= mysql_query ("SELECT * FROM Banner_table")
Fai un ciclo facendo scorrere gli elementi che hai estratto
$i=0;
While ($dati=mysql_fetch_row($result) {
$i++;
echo "urlArray[$i] = \"$dati['url']"\";
echo "banArray[$i] = new Image(468, 60);"
echo "banArray[$i].src = "banners/banner" + ($i+1) + ".jpg";"
}

In pratica le riche di javascript le devi mandare in output video (attraverso l'echo di PHP), sarà poi il client che riceve la tua pagina compilata ad eseguire il codice.
Quindi non devi far altro che scrivere qualcosa di simile in ASP e mantenere + o - inalterato il codice javascript che hai!

Ciao, McK

cionci
18-05-2004, 17:38
Il Javascript (non Java, è diverso) è normale testo... Come tu generi il codice HTML puoi generare anche il codice JavaScript...

Carmen
18-05-2004, 17:45
Così và già abbastanza meglio...

Però di PHP credo che ne capisca quanto tu ne capisca di ASP, una parte sembra chiara, quello che non capisco e un pò l'ultima parte.

Spero che qualcuno possa magari tradure il tutto dalla sintassi PHP alla sintassi ASP....

McK
18-05-2004, 19:43
l'ultima parte non è niente di eccezionale

While ($dati=mysql_fetch_row($result) {
$i++;
echo "urlArray[$i] = \"$dati['url']"\";
echo "banArray[$i] = new Image(468, 60);"
echo "banArray[$i].src = "banners/banner" + ($i+1) + ".jpg";"
}

allora il ciclo while credo sia universale :D
i nomi che cominciano con $ sono le variabili, quindi il parametro del while assegna a dati una riga dei dati estratti dal database.
In pratica la variabile result è una matrice ogni riga è un elemento dell'array ed ogni colonna è il campo della tabella nel database.

La variabile I la usi come banale contatore che usi come indice per generarti gli array in javascript.
Quello che fa dopo non è altro che scrivere il codice Javascript che ho copiato dal file che avevi postato tu.
Considera "echo" come una sorta di write del pascal o cout << di c++ (spero che almeno tu conosca uno di questi due linguaggi) :D

Quindi in pratica, facendo un esempio, le varabili ammettiamo che contengano una cosa di questo tipo al primo "giro" del ciclo while
i=1
$dati['url']="http://www.google.it" <--- prima colonna nella tabella del database
$dati['img']="ciao.jpg" <-- seconda colonna nella tabella del database, + tutte le altre eventuali colonne
E ciò che a scrive a "video", vale a dire il codice che arriva al browser sarà:

urlArray[1]="http://www.google.it";
banArray[1] = new Image(468, 60);
banArray[1].src = "banners/banner" + (1+1) + ".jpg";

E via di seguito fino alla fine della tabella nel tuo database.

Probabilmente la parte + difficile da capire è "la scrittura a monitor", in realtà non viene stamapato quello quello è il codice "html + javascript" che viene scaricato dopo aver lanciato da browser la richiesta della pagina ASP . Quindi in realtà l'utente non vede quel codice ma il risultato dell'interpretazione del browser (può vedere quel codice solo facendo visualizza -> html da internet explorer).

Tutto questo per dire:
Un normale compilatore (Ex. c++) produce un file .EXE
Un compilatore su un webserver (asp, java, php) produce un file HTML.

Ciao, McK

Carmen
19-05-2004, 15:01
Grazie dei consigli. Spero di poter riuscire nell'intento....