Inserire Valori Da Un File Js In Una Tabella Html

Stato
Chiusa ad ulteriori risposte.

cavaliere123

Utente Attivo
31 Lug 2012
416
0
16
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

  • immagine.jpg
    immagine.jpg
    43,2 KB · Visite: 818
Ultima modifica di un moderatore:
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
 
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 ::)
 
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
 
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
 
abbiamo risposto insieme
leggi sopra
 
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.... :)
 
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
 
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 ????
 
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.
 
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);
 
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:
Chiaramente l'immagine finale della tabella dovrebbe essere questa che ti allego :
 

Allegati

  • immagine.jpg
    immagine.jpg
    43,2 KB · Visite: 552
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:
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
 
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:
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:
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
 
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 :)
 
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.

Discussioni simili