Nell'header del mo sito vorrei mettere una nuova frase ogni giorno (365), ho pensato di creare una pagina apposita con tutte le frasi e richiamarla con un codice js.
Come posso fare?
Nell'header del mo sito vorrei mettere una nuova frase ogni giorno (365), ho pensato di creare una pagina apposita con tutte le frasi e richiamarla con un codice js.
Come posso fare?
Salve,
può farlo i questo modo:
Cordiali saluti.Codice HTML:<div id="id_frase"></div> <script> var frase = new Array(); frase[0] = "Oggi è il primo dell'anno!"; // 1 Gennaio frase[1] = "Se il benvenuto"; //......................... frase[364] = "Oggi è l'ultimo giorno dell'anno!" // frase 365 function SciviFrase() { var ora = new Date(); var giorno = ora.getDate(); var mese = ora.getMonth(); var totale = (giorno+mese); var conta = (totale%frase.length); document.getElementById("id_frase").innerHTML = frase[conta-1]; } SciviFrase(); </script>
Ho creato la pagina php con l'array e le frasi, nella pagina di richiamo ho messo questo ma non mostra le frasi
Codice HTML:<script> ScriviFrase(); </script>
Il resto del codice o lo mette tutto insieme nella stessa pagina dove esegue la funzione, oppure, lo deve inserire in un file js e caricarlo nella pagina di eseguzione della funzione, con il tag script di html.
Esempio con uso di js su file esterno:
Cordiali saluti.Codice HTML:<script src="file.js"></script> <script> ScriviFrase(); </script>
Ultima modifica di GraphOGLRisorse : 04-01-2021 alle ore 20.30.00
Il file esterno dove ci sono le frasi è in php
Se l'array che contiene le frasi lo ha fatto in js come nel codice che le ho fornito, può metterlo semplicemnte in un file js. Inoltre, se nella pagina php vi è solo il resto del codice con l'array delle frasi, è più logico che i tutto sia su di un file js.
Ha necessità per qualche motivo di mettere il resto del codice con l'array delle frasi in una pagina php?
Cordiali saluti.
In php le frasi dovrebbero rimanere nascoste.
Nella home ho messo così ma non appare niente
Ma anche creando il file js, non lo richiamaCodice HTML:<?php include('frasi.php');?> <div class="fraseGiorno"> <script> ScriviFrase(); </script> </div>
Codice HTML:<script src="frasi.js"></script> <div class="fraseGiorno"> <script> ScriviFrase(); </script> </div>
Ultima modifica di albertifoto : 04-01-2021 alle ore 21.31.49
Scusi il ritardo per la risosta.
Per funzionare, deve la funzione js deve essere richiamata dopo il div con id di riferimento e non stare al suo interno.
Aggiorni anche la cache del browser prima di esguirela modifica.Codice HTML:<div id="frasi"></div> <script src="fraseGiorno.js"></script> <script> SciviFrase(); </script>
Cordiali saluti.
Non va, forse sbaglio qualcosa.
Nel file esterno js:
nella homeCodice PHP:
<div id="id_frase"></div>
<script>
var frase = new Array();
frase[0]= "Buon anno!";
frase[1]= "Ciao";
...
frase[364]= "-Ultimo giorno";
function ScriviFrase() {
var ora = new Date();
var giorno = ora.getDate();
var mese = ora.getMonth();
var totale = (giorno+mese);
var conta = (totale%frase.length);
document.getElementById("id_frase").innerHTML = frase[conta-1];
}
</script>
Codice PHP:
<script src="frasi.js"></script>
<div class="fraseGiorno">
<script>
ScriviFrase();
</script>
</div>
Riprendo il mio codice per l'esmpio.
Nel file js esterno(test.js), deve mettere solo il codice js:
Per la home:Codice:var frase = new Array(); frase[0] = "Oggi è il primo dell'anno!"; // 1 Gennaio frase[1] = "Se il benvenuto"; //......................... frase[364] = "Oggi è l'ultimo giorno dell'anno!" // frase 365 function SciviFrase() { var ora = new Date(); var giorno = ora.getDate(); var mese = ora.getMonth(); var totale = (giorno+mese); var conta = (totale%frase.length); document.getElementById("id_frase").innerHTML = frase[conta-1]; }
Se invece intende usare php per il codice js esteno(test.php) va messo così:Codice PHP:
<script src="test.js"></script>
<div id="id_frase"></div>
<script>
SciviFrase();
</script>
Per la home:Codice PHP:
<script>
var frase = new Array();
frase[0] = "Oggi è il primo dell'anno!"; // 1 Gennaio
frase[1] = "Se il benvenuto";
//.........................
frase[364] = "Oggi è l'ultimo giorno dell'anno!" // frase 365
function SciviFrase() {
var ora = new Date();
var giorno = ora.getDate();
var mese = ora.getMonth();
var totale = (giorno+mese);
var conta = (totale%frase.length);
document.getElementById("id_frase").innerHTML = frase[conta-1];
}
</script>
Cordiali saluti.Codice PHP:
<?php include('test.php');?>
<div id="id_frase"></div>
<script>
SciviFrase();
</script>
Ultima modifica di GraphOGLRisorse : 04-01-2021 alle ore 23.32.39
Ma se vuoi semplicemente mostrare una frase diversa per ogni giorno e non vuoi mostrare tutte le frasi agli utenti, come mai vuoi utilizzare javascript?
In "puro" PHP:
Oppure puoi fare anche un check nel caso non sia presente la frase del giorno:Codice PHP:
<?php
$frasi = array(
'primo giorno dell\'anno',
'secondo giorno dell\'anno',
'terzo giorno dell\'anno',
'quarto giorno dell\'anno',
'quinto giorno dell\'anno',
...
);
echo $frasi[date('z')]; //scrivi frase di oggi con una semplice echo
?>
Se utilizzi javascript, i visitatori possono facilmente leggere tutte le frasi dell'anno.Codice PHP:
if(array_key_exists(date('z'), $frasi))
{
echo $frasi[date('z')];
}
else
{
echo 'la frase del giorno '.date('z').' non è disponibile';
}
Ultima modifica di alemoppo : 04-01-2021 alle ore 23.57.49
regolamento altervista_______________ regolamento forum
Sembra non funzionare con Wordpress.
Però il css <div class="fraseGiorno"> lo trova.
Ricapitolando: nel tema-child ho i 2 file di prova:
frasi.js e frasi.php
in frasi.js
In header.php della homeCodice PHP:
var frase = new Array();
frase[0]= "Buon anno!";
frase[1]= "Ciao";
...
frase[364]= "Ultima";
function ScriviFrase() {
var ora = new Date();
var giorno = ora.getDate();
var mese = ora.getMonth();
var totale = (giorno+mese);
var conta = (totale%frase.length);
document.getElementById("id_frase").innerHTML = frase[conta-1];
}
Oppure:Codice PHP:
<div class="fraseGiorno">
<script src="frasi.js"></script>
<div id="id_frase"></div>
<script>
ScriviFrase();
</script>
</div>
file esterno frasi.php
In header.php della homeCodice PHP:
<?php
<script>
var frase = new Array();
frase[0]= "Buon anno!";
frase[1]= "Ciao";
...
frase[364]= "Ultima";
function ScriviFrase() {
var ora = new Date();
var giorno = ora.getDate();
var mese = ora.getMonth();
var totale = (giorno+mese);
var conta = (totale%frase.length);
document.getElementById("id_frase").innerHTML = frase[conta-1];
}
</script>
Codice PHP:
<div class="fraseGiorno">
<?php include('frasi.php');?>
<div id="id_frase"></div>
<script>
ScriviFrase();
</script>
</div>
Ultima modifica di albertifoto : 05-01-2021 alle ore 01.18.03
Io nell'esempio ho messo solo le prime 2 e l'ultima frase, ma per poterlo testare, deve togliere l'lutima frase(la numero 364) e mettere un numero di frasi nell'array che sia almeno pari al numero attuale del giorno.
Esempio:
Ha visto anche gli esempi che le ha fatto alemoppo?Codice:var frase = new Array(); frase[0]= "Buon anno!"; frase[1]= "Ciao"; frase[2]= "Ciao 1"; frase[3]= "Ciao 2"; frase[4]= "Ciao 3";
Cordiali saluti.
Ho provato ad inserire tutto il codice esterno nella home e funziona perfettamente tranne il fatto che mi mette a video la frase di ieri. In pratica oggi ne abbiamo 5, ma mi stampa quella di frase[4]="...";
Non capisco perché inserendo il richiamo non trova il file esterno.
Ultima modifica di albertifoto : 05-01-2021 alle ore 03.12.13
Io ho fatto le prove sul mio sito con il codice js esterno, sia in un file *.js che con un file php e mi funzionano entrambi. Io ad ogni modifica, prima di fare la prova aggiorno anche la cache del browser, per evitare falsi risultati.
In realtà è giusto così, perchè l'array parte da 0 e non da 1. Non a caso, nel codice di esempio come ultimo numero dell'array ho messo 364 invece di 365.
Negli array, l'elemnto 0 equivale comunque ad un valore che non è necessariamente zero, come in questo caso in cui i vaolri dell'array sono delle stringhe. Quindi partendo a contare da 0 a 4, si hanno 5 stringhe e di conseguenza l'elemento [4] sarà uguale al 5° giorno dell'anno.
Cordiali saluti.
Ultima modifica di GraphOGLRisorse : 05-01-2021 alle ore 04.04.34
Ultima modifica di albertifoto : 05-01-2021 alle ore 04.07.41
A livello seo non cambia di per sè che sia in js o php. L'unico elemnto che può influire sulla seo è il tempo di eseguzione, che tra js e php può variare a seconda dello script. Nel caso di script complessi, può quindi fare la differenza nel seo, per codici semplici come quello che stiamo prendedo in considerazione, le differenze nelle tempistiche di eseguziione sono minime, quindi non è determinante per il seo.
Le metto lo zip con i file delle mie 2 prove: DemoFraseCheCambia.zip
Per verificare entrambe le condizioni, le basta importare tutti i file e eseguire i file che hanno come parte del nome index.
Cordiali saluti.
Ultima modifica di GraphOGLRisorse : 05-01-2021 alle ore 04.57.21
Finalmente ora funziona almeno il php, non ci avevo messo i codici script all'inizio e alla fine. Il js non so perché non va, quindi tengo ovviamente il primo.
Ora si tratta di aggiungerci quel codice finale che se non c'è la frase esce l'avviso es. "La frase non c'è".
Può farlo sostituendo nella funzione SciviFrase() questo:
con questo:Codice:document.getElementById("id_frase").innerHTML = frase[conta];
Cordiali saluti.Codice:if(typeof frase !== 'undefined' && frase.length > 0){ document.getElementById("id_frase").innerHTML = frase[conta]; }else{ document.getElementById("id_frase").innerHTML = "La frase non c'è."; }
Per errore, mi era sfuggito di riportare il codice completo:
L'ho leggermente per semplificato ma non cambia la struttura.Codice:var FraseDiv = document.getElementById("id_frase"); if(typeof frase !== 'undefined' && frase.length > 0){ FraseDiv.innerHTML = frase[conta]; }else{ FraseDiv.innerHTML = "La frase non c'è."; } if(FraseDiv.innerHTML == "" || FraseDiv.innerHTML == " "){ FraseDiv.innerHTML = "La frase non c'è."; }
Cordiali saluti.
Ultima modifica di GraphOGLRisorse : 05-01-2021 alle ore 15.44.40
Non funziona, ma è random?
Codice PHP:
function ScriviFrase() {
var ora = new Date();
var giorno = ora.getDate();
var mese = ora.getMonth();
var totale = (giorno+mese);
var conta = (totale%frase.length);
var FraseDiv = document.getElementById("id_frase");
if(typeof frase !== 'undefined' && frase.length > 0){
FraseDiv.innerHTML = frase[conta];
}else{
FraseDiv.innerHTML = "La frase non c'è.";
}
if(FraseDiv.innerHTML == "" || FraseDiv.innerHTML == " "){
FraseDiv.innerHTML = "La frase non c'è.";
}
}
Nel file con il codice js che sta usando, attualmente il nome dell'array è frase o frasi?
No, sul random una volta al giorno stavo provando. Se invece le va bene anche che la frase cambia ad ogni caricamento;
Le basta aggiungere questa funzione nel file con il codice js:
e sostituire " frase[conta]; " con " frase[RandomInt(1,360)]; "Codice:function RandomInt(min,max) { return Math.floor(Math.random()*(max-min+1))+min; }
Cordiali saluti.
A me funziona anche con i doppi apici nelle stringhe e poi, ha confermato che il codice js nel file php, che le ho fornito nello zip, funzioanva anche a lei. In quel codice c'erano sempre i doppi apici. Forse modificando le frasi aveva cancellato per errore un doppio apice in una stringa.RISOLTO, erano i doppi apici nelle frasi.
In riferimento alla visualizzazione randomica una volta al giorno, al momento non ho una soluzione. L'unica cosa che mi viene in mente, che più si avvicina al comportamento che desidera, è l'uso di un cookie. Quindi crearando un cookie che viene memorizzato nel browser, si può far si che l'utente visualizzi per la giornata sempre la stessa frase. Però ogni utetne avrà una frase diversa nella stessa giornata.
Non è certamente il metodo migliore, poichè se nel browser si ha il blocco dei cookie attivo, il codice non funzionerà. Inoltre, quando si aggiorna la cache del browser, la frase in caso di ricaricamento della pagina, cambierà priama che siano passate le 24 ore del giorno.
Cordiali saluti.
Ultima modifica di GraphOGLRisorse : 05-01-2021 alle ore 21.13.34
I doppi apici che davano problemi erano quelli uguali, es:
frase[249]= ""testo"";
Così invece funziona:
frase[249]= "'testo'";
Ho notato che se entro nel sorgente del sito le frasi si vedono, ma il php non dovrebbe essere invisibile?
Ultima modifica di albertifoto : 05-01-2021 alle ore 22.54.32