Inserire Valori Da Un File Js In Una Tabella Html

Stato
Chiusa ad ulteriori risposte.

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Buonasera a tutti, premettendo che non sono un esperto di javascript ho provato a fare uno script per citazione del giorno . Ho usato come file esterno due file js ( non mi sono azzardato ad usare gli array multidimensionali, anche xchè ci sono riuscito lo stesso nello scopo ),

vi posto il contenuto del primo file :
Codice:
var frasi = new Array(); 
frasi[0]= "citazione1."; 
frasi[1]= "citazione2"; 
... 

var id=0 
function scrivere() { 
if (id==frasi.length) { id=0; } 
document.write("" + frasi[id] + ""); id++ } 
setInterval('scrivere()',3000);
E adesso volevo farlo comparire in una tabella come da figura : ( speriamo che l'abbia inserita )
e chiaramente riporto anche il file html con la tabella in cui voglio far comparire la scritta e precisamente nel punto dove ho messo tutti trattini :
HTML:
<html> 
<head> 
<title>Prova di script esterno</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<meta http-equiv="imagetoolbar" content="no" /> 
</head> 

<TABLE BGCOLOR=red BORDERCOLOR=yellow ALIGN=center BORDER=3 cellspacing=3 cellpadding=3 width=90%> 
<TR> 
<TD><TABLE WIDTH=100% ALIGN=center BORDER=0 cellspacing=3 cellpadding=3 
bordercolor=#33FF66 
bordercolordark=#33FF66 bordercolorlight=#00FF99 bgcolor=#FFFF33> 
<TR> 
<TD align=middle><FONT face=Arial,Helvetica><b> 
<------------------------------------------------------> 
</b></FONT><HR align=center width=100% ></TD> 
</TR> 
<TR> 
<TD align=right> <FONT face=Arial,Helvetica><I><b> 
<script type="text/javascript" src="CITAZIONI2.js";></script></b></I></TD> 
</TR> 
</TABLE></TD> 
</TR> 
</TABLE> 
<body> 
<p>prova citazioni</p> 
</body> 
</html>
Spero di essere stato chiaro. Per favore aiutatemi :) Un saluto ed un grazie anticipato Domenico
 

Allegati

Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
ho inserito tutto in una pagina per comodità ma nessuno ti vieta di usare un file js esterno

ti ho sistemato iljavascript e riordinato leggermente il codice html, ho aggiunto un id alla td che conterra le citrazioni
eviterei la formattazione inline come hai usato e affiderei il lavoro ai css per mantenere l'html piu ordinato
i tag html inoltre scrivili in minuscolo
cmq eccolo:
HTML:
<html> 
    <head> 
        <title>Prova di script esterno</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
        <meta http-equiv="imagetoolbar" content="no" /> 

        <script type="text/javascript">
            var frasi = new Array(); 
            frasi[0]= "citazione1."; 
            frasi[1]= "citazione2"; 

            var id=0 
            function scrivere() { 
                if (id==frasi.length) { 
                    id=0; 
                } 
                document.getElementById("citazione").innerHTML = frasi[id];
                id++ 
            } 
            setInterval('scrivere()',3000);
        </script>
    </head> 

    <body> 
        <TABLE BGCOLOR=red BORDERCOLOR=yellow ALIGN=center BORDER=3 cellspacing=3 cellpadding=3 width=90%> 
            <TR> 
                <TD>
                    <TABLE WIDTH=100% ALIGN=center BORDER=0 cellspacing=3 cellpadding=3 bordercolor=#33FF66 bordercolordark=#33FF66 bordercolorlight=#00FF99 bgcolor=#FFFF33> 
                        <TR> 
                            <TD id="citazione" align=middle><FONT face=Arial,Helvetica><b> 
                                    <------------------------------------------------------> 
                                </b></FONT></TD> 
                        </TR> 
                        <TR> 
                            <TD align=right> <FONT face=Arial,Helvetica><I><b></b></I></TD> 
                        </TR> 
                    </TABLE>
                </TD> 
            </TR> 
        </TABLE> 
        <p>prova citazioni</p> 
    </body> 
</html>
prova a riscrivere l'html magari senza usare le tabelle ma i div
buon lavoro
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Gentile criric

ringraziando della tua risposta, perdonami ma a questo ci ero arrivato, ma proprio per evitare di tenere nella stessa pagina html, centinaia di citazioni ho creato il file js a parte.... spero di essere più chiaro adesso, il mio problema è che non riesco a far comparire nella tabella il valore del file js esterno e non mi rispondere richiamalo.... perchè so che c'è la procedura Dom per richiaramare un ben specifico elemento di un js esterno, ma non so farlo.... questo è il mio problema. Grazie ::)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
qui hai un punto e virgola di troppo
HTML:
<script type="text/javascript" src="CITAZIONI2.js";></script>
modifica cosi:
HTML:
<script type="text/javascript" src="CITAZIONI2.js"></script>
in piu metti questo codice tra <head> e </head>

poi modifica il js come ti ho postato
non puoi usare document.write altrimenti o sovrascrivi tutto l'html o cmq non vai a scrivere dentro la td che vuoi
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
In pratica cosi cerco di essere più chiaro io , nel punto dove hai scritto :
<TD id="citazione" align=middle><FONT face=Arial,Helvetica><b>

il " citazione " è stato facile prenderlo perchè sta nella stesa pagina html, se invece devo prelevare la citazione direttamente dal file .js non so farlo, se metto :
<script type="text/javascript" src="CITAZIONI1.js";></script>

la tabella si cancella e compaiono solo le scritte uno dietro l'altra.... :((((

per favore....
Domenico
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
abbiamo risposto insieme
leggi sopra
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Già ho modificato prendendolo da te il file js ti ringrazio, adesso e sempre per essere chiaro che inserisco a posto di : <TD id="citazione" align=middle><FONT face=Arial,Helvetica><b> , per prendere il valore direttamente dal file js ???

Grazie davvero per l'interessamento.... :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
si,
questo codice:
Codice:
 document.getElementById("citazione").innerHTML = frasi[id];
vuol dire prendi l'elemento con id "citazione" e scrivigli dentro l'elemento che recuperi dall'array

che il js si nella pagina o in un file esterno non cambia nulla
l'imnportante è che richiami il file nel modo giusto, percorso compreso
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Diamineeeeeeeeeee............. funziona :)))))))))))))

Grazie di cuore.....

che dici posto il tutto in modo da far comprendere agli altri ???

e poi mi spieghi una cosa se ti va, il richiamo nel tag della tabella : id="citazione", se lo legge in automatico dal document.... che c'è nel file js ????
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
E ultima domanda se non ti scocci..... quando carico la pagina , devo aspettare tre secondi che esce la prima scritta..... il setintervall parte chiaramente dal refresh... come posso fare che la prima scritta esce subito e il timer diciamo cosi parte subito dopo ??

Grazie sempre.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
id="citazione", se lo legge in automatico dal document....
Si, è il metodo getElementById() che lo riconosce

devo aspettare tre secondi che esce la prima scritta.....
puoi modificare il codice js in questo modo
Codice:
var frasi = new Array(); 
    frasi[0]= "citazione1."; 
    frasi[1]= "citazione2"; 
    // imposti subito il primo elemento 0
    document.getElementById("citazione").innerHTML = frasi[0];
    // inizializzi il contatore al secondo elemento 1
    var id=1 
    function scrivere() { 
        if (id==frasi.length) { 
            id=0; 
        } 
        document.getElementById("citazione").innerHTML = frasi[id];
        id++ 
    } 
    setInterval('scrivere()',3000);
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Funziona benissimo e sperando che tu adesso non mi odi sul serio ho un altro piccolo problema :(((

ho creato due file js , una per le citazioni ed una per gli autori, ho letto che i file js non supportano i file multimediali, e quindi adesso me ritrovo : il primo file : citazioni.js cosi :
Codice:
var frasi = new Array();          
frasi[0]= "Il sorriso: una curva che può raddrizzare un sacco di cose.";
frasi[1]= "Il linguaggio richiede di essere accordato come il violino... troppe o troppe poche parole guastano il messaggio.";
frasi[2]= "Il mondo è più silenzioso, bisogna solo ascoltare. Se sappiamo ascoltare possiamo sentire il progetto di Dio.";
frasi[3]= "Volevo ricordarti che l’amore è rimanere e non sparire per vedere se uno poi ci tiene.";

    // imposti subito il primo elemento 0
    document.getElementById("citazione").innerHTML = frasi[0];
    // inizializzi il contatore al secondo elemento 1
    var id=1 
    function scrivere() { 
        if (id==frasi.length) { 
            id=0; 
        } 
        document.getElementById("citazione").innerHTML = frasi[id];
        id++ 
    } 
    setInterval('scrivere()',3000);

var kd = [id]

var autori = new Array();
autori[0]= "(G. E. Keillor)";
autori[1]= "(O. Wilde)";
autori[2]= " FILM [ Io Sono Leggenda ]";
autori[3]= "(C. Bukowski)";
ho aggiunto sotto cmq anche l'altro array per associargli la variabile kd che secondo la mia ( pessima me sa... ) logica dovrebbe memorizzarsi l'ultimo id e quindi poi nel momento che si richiama il file citazione2.js :
Codice:
var frasi = new Array();          
frasi[0]= "Il sorriso: una curva che può raddrizzare un sacco di cose.";
frasi[1]= "Il linguaggio richiede di essere accordato come il violino... troppe o troppe poche parole guastano il messaggio.";
frasi[2]= "Il mondo è più silenzioso, bisogna solo ascoltare. Se sappiamo ascoltare possiamo sentire il progetto di Dio.";
frasi[3]= "Volevo ricordarti che l’amore è rimanere e non sparire per vedere se uno poi ci tiene.";

var kd = [id]

var autori = new Array();
autori[0]= "(G. E. Keillor)";
autori[1]= "(O. Wilde)";
autori[2]= " FILM [ Io Sono Leggenda ]";
autori[3]= "(C. Bukowski)";

document.getElementById("AUTORE").innerHTML = autori[kd];
e trasformando l'html cosi :
HTML:
<html>
<head>
  <title>Prova di script esterno</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <meta http-equiv="imagetoolbar" content="no" />


</head>


<TABLE BGCOLOR=red BORDERCOLOR=yellow ALIGN=center BORDER=3 cellspacing=3 cellpadding=3 width=90%>
  <TR>
    <TD><TABLE WIDTH=100% ALIGN=center BORDER=0 cellspacing=3 cellpadding=3 
    bordercolor=#33FF66
    bordercolordark=#33FF66 bordercolorlight=#00FF99 bgcolor=#FFFF33>
  <TR>
    <TD id="citazione" align=middle><FONT face=Arial,Helvetica><b>
        <script type="text/javascript" src="CITAZIONI1.js";></script>
</b></FONT><HR align=center width=100% ></TD>
  </TR>
  <TR>
    <TD id="AUTORE" align=right> <FONT face=Arial,Helvetica><I><b> 
        </b></I></TD>
  </TR>
</TABLE></TD>
  </TR>
</TABLE>



<body>
  <p>prova citazioni</p>
</body>

</html>
dovrebbe funzionare ma chiaramente manco a dirlo... no..... :(((

eppure la logica dovrebbe essere la stessa... dove erro se ti va sempre eh ??? :))
Intanto ti ringrazio cmq già tanto. Domenico.
 
Ultima modifica di un moderatore:

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Ci sono riuscito da soloooooooooo :))

in effetti ho solo creato i due file js uguali con array diversi chiaramente e li ho fatti richiamare in tabella cosi :
HTML:
<TABLE BGCOLOR=red BORDERCOLOR=yellow ALIGN=center BORDER=3 cellspacing=3 cellpadding=3 width=90%>
  <TR>
    <TD><TABLE WIDTH=100% ALIGN=center BORDER=0 cellspacing=3 cellpadding=3 
    bordercolor=#33FF66
    bordercolordark=#33FF66 bordercolorlight=#00FF99 bgcolor=#FFFF33>
  <TR>
    <TD id="citazione" align=middle><FONT face=Arial,Helvetica><b>
  <script type="text/javascript" src="frasi1.js"></script>      
</b></FONT><HR align=center width=100% ></TD>
  </TR>
  <TR>
    <TD id="autore" align=right> <FONT face=Arial,Helvetica><I><b> 
        <script type="text/javascript" src="citazioni2.js"></script>
</b></I></TD>
  </TR>
</TABLE></TD>
  </TR>
</TABLE>
Però adesso è scomparsa la linea divisioria fra le due celle... e vabbè....
strana la cosa che se metto tra i due head i richiami agli script non funziona... devo inserirlo subito dopo la linea del TD, mah.... questa non l'ho capita :))
Davvero ti ringrazio tanto... senza di te mi sarebbe stato impossibile... :))))
Domenico.
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ci sono riuscito da solo
Ottimo!
strana la cosa che se metto tra i due head i richiami agli script non funziona...
Giusto! perche in effetti quando il browser legge ed esegue quello che c'è in head ,la td con id " citazione " ancora non esiste e lo script va in errore

Piuttosto pero inseriscili dopo la chiusura della tabella </table>

Racchiudi il codice che posti tra i tag presenti sulla barra di formattazione ultime icone della seconda linea
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
HTML:
<table
 style="width: 90%; text-align: left; margin-left: auto; margin-right: auto;"
 border="1" cellpadding="3" cellspacing="2" style="font-weight: bold; font-style: italic;" size="+3">
  
    <tr>
      <td style="width: 117px; height: 44px;" colspan="1"
 rowspan="2"><img style="width: 148px; height: 109px;"
 alt="" src="file:///F:/seconda%20CARTELLA%20CITAZIONI/Penna.jpg"></td>
      <td id="citazione"
 style="background-color:#FF9900; text-align: center; vertical-align: middle; width:100%; height:69px;">

</td>
    </tr>
    <tr>
      <td id="autore"
 style="text-align: right; vertical-align: middle; width:100%; background-color:#F5F5DC;">
</td>
    </tr>

<script type="text/javascript" src="frasi1.js";></script> 
<script type="text/javascript" src="CITAZIONI2.js";></script> 

</table>
questa è la tabella finale e dove ho messo gli script prima della chiusura della table come da te suggerito :)
onestamente ammetto che l'ho fatta con l'aiuto di un editor .... ma sono rimasto fregato lo stesso perchè non riesco a mettere le indicazioni delle font per le due scritte che mi escono in tabella grrrrrrrr..... :((
Non è che devo inserire la font nel file .js ???????
 
Ultima modifica di un moderatore:

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Credo di averi risolto :))

uso il css
HTML:
<style type="text/css">
   p {
      color: 003366;
      font-size: 30px;
      font-family: Verdana;
   }
</style>
quindi per tutto quello che viene scritto in quel tag ho la formattazione. spero che sia la strada giusta :)
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si è la strada giusta! usa i css anche per formattare la tabella
invece di scrivere
HTML:
<table
 style="width: 90%; text-align: left; margin-left: auto; margin-right: auto;"
 border="1" cellpadding="3" cellspacing="2" style="font-weight: bold; font-style: italic;" size="+3">
scrivi
HTML:
<style>
    table {
       width:90%;
       text-align:left; 
       margin:auto;
/* etc etc */
    }

</style>
<table>
<tr><td></td></tr>
</table>
Ricordati di racchiudere il codice che posti tra i tag CODE PHP o HTML
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Chiaramente giacchè sono diventato cosi bravo.... ho pensato che adesso sia anche il caso che a parte le citazioni, nella tabella faccia ruotare anche delle immagini specifiche per l'autore della citazione, in effetti metto una sua foto..... bene e quindi mi creo il solito javascript esterno con estensione js e iniziano i problemi :

var immagini = new Array();
immagini[0]= "<img src=""F:\seconda CARTELLA CITAZIONI\immagini frasi\g_keillor.jpg"" width=""117"" height=""44"" />";
immagini[1]= "<img src=""F:\seconda CARTELLA CITAZIONI\immagini frasi\oscar_wilde.jpg"" width=""117"" height=""44"" />";
immagini[2]= "<img src=""F:\seconda CARTELLA CITAZIONI\immagini frasi\io_sono_leggenda.jpg"" width=""117"" height=""44"" />";
immagini[3]= "<img src=""F:\seconda CARTELLA CITAZIONI\immagini frasi\bukowski.jpg"" width=""117"" height=""44"" />";
immagini[4]= "<img src=""F:\seconda CARTELLA CITAZIONI\immagini frasi\penna.jpg"" width=""117"" height=""44"" />";

// imposti subito il primo elemento 0
document.getElementById("foto").innerHTML = immagini[0];
// inizializzi il contatore al secondo elemento 1
var ad=1
function inserire() {
if (ad==immagini.length) {
ad=0;
}
document.getElementById("foto").innerHTML = immagini[ad];
ad++


}
setInterval('inserire()',3000);


credo che cosi sia un obbrobrio.... anche perchè chiaramente mettendo l'id foto nulla succede :)

dovrei usare il comando document.foto.src ??
Porta pazienza.... in fondo è cosi che sto imparando il tutto... quando ti posto una domanda fidati è perchè già ci ho sbattuto per ore :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Porta pazienza....
Con questa è la terza volta che ti chiedo di formattare il codice che posti
se non hai capito cosa volevo dirti chiedi
chiudo la discussione
 
Stato
Chiusa ad ulteriori risposte.