PDA

View Full Version : [JAVASCRIPT] LocalStorage piccolo aiuto.


Snake17x
15-07-2011, 20:22
Ciao ragazzi, ho un piccolo dubbio sui localstorage.
Come sapete il localstorage ha più o meno la funzione dei cookie, nel mio caso uso il localstorage in questo modo:

Entro sul sito, modifico un campo di testo, quando esco e rientro il campo di testo rimane tale e quale a come l'ho modificato prima di uscire.

Ovviamente se un altro utente entra nel sito dopo che io ho fatto la modifica NON la vede.

Posso fare in modo che chi entra dopo che io ho fatto la modifica la veda anche lui? (Non so mettere il localstorage in comune, o una roba simile, anche con sistemi che non centrano col localstorage).

Vi ringrazio in anticipo :D

dierre
15-07-2011, 21:37
no, ti devi appoggiare ad un "remote storage" :asd:

o un file o un db.

Snake17x
15-07-2011, 23:08
no, ti devi appoggiare ad un "remote storage" :asd:

o un file o un db.

Scusa se chiedo troppo, ma non riesco a trovare nulla sul remote storage.

Una breve spiegazione su questo metodo? E' simile al local storage?

dierre
15-07-2011, 23:41
era una battuta. Intendevo dire che se hai bisogno di salvare uno "stato" (nel tuo caso la form dove viene inserito del testo) in maniera che sia fruibile da tutti, devi agire lato server, perché lo stato deve essere persistente.

Si può fare in vari modi, di solito si usa un database, nel tuo caso visto l'esigua dimensione del dato, potrebbe anche bastare un file.

Da qui si apre tutta la parentesi sulla programmazione lato server (architettura LAMP etc...)

Snake17x
15-07-2011, 23:45
era una battuta. Intendevo dire che se hai bisogno di salvare uno "stato" (nel tuo caso la form dove viene inserito del testo) in maniera che sia fruibile da tutti, devi agire lato server, perché lo stato deve essere persistente.

Si può fare in vari modi, di solito si usa un database, nel tuo caso visto l'esigua dimensione del dato, potrebbe anche bastare un file.

Da qui si apre tutta la parentesi sulla programmazione lato server (architettura LAMP etc...)


Quindi c'è una guida o qualcosa che posso consultare per creare sto file di salvataggio?
Oppure sarebbe stupendo se riuscissi a spiegarmelo in poche righe, facendomi un esempio di codice per il salvataggio di un form o una variabile.

dierre
15-07-2011, 23:50
Quindi c'è una guida o qualcosa che posso consultare per creare sto file di salvataggio?
Oppure sarebbe stupendo se riuscissi a spiegarmelo in poche righe, facendomi un esempio di codice per il salvataggio di un form o una variabile.

puoi partire da qui http://php.html.it/guide/leggi/99/guida-php-di-base/ e pian piano vedi cosa fare. Scrivere un file è una scemenza ma se non ti sono familiari alcuni concetti,e mi sembra che non lo siano, è inutile che io scriva del codice che per te non ha significato.

Snake17x
16-07-2011, 00:01
puoi partire da qui http://php.html.it/guide/leggi/99/guida-php-di-base/ e pian piano vedi cosa fare. Scrivere un file è una scemenza ma se non ti sono familiari alcuni concetti,e mi sembra che non lo siano, è inutile che io scriva del codice che per te non ha significato.

Di PHP so meno di zero, mannaggia mannaggia.
Quindi nessuna possibilità di fare ciò che volevo con javascript?

alemoppo
16-07-2011, 11:44
javascript lavora lato client.
Se vuoi rendere visibili delle modifiche a tutti gli utenti, devi agire lato server.

Ciao!

Snake17x
16-07-2011, 12:03
javascript lavora lato client.
Se vuoi rendere visibili delle modifiche a tutti gli utenti, devi agire lato server.

Ciao!

Grazie mille, gentilmente mi potresti indicare i capitoli della guida PHP che servono per salvare delle modifiche fatte con javascript?

alemoppo
16-07-2011, 20:07
Sinceramente io non ho letto la guida che ti hanno consigliato. Però, per scrivere in un file di testo, puoi usare la file_put_contents() (http://php.net/manual/en/function.file-put-contents.php) {devi avere PHP5}.

per inviare i dati al server, ti consiglio il modo POST, ma puoi usare anche GET. Questo dovrebbe essere spiegato nella guida sopra al capitolo 23: "Le variabili GET e POST".

Quindi, invii i dati e scrivi il contenuto di _POST['nome_textarea'] nel file tramite la funzione che ti ho indicato.

---

Per leggere dal file, puoi usare la file_get_contents() (http://php.net/manual/en/function.file-get-contents.php). Una cosa del genere:

[...]<textarea name='decidi_te'><?php echo file_get_contents('nome_file.txt'); ?></textarea>[...]

Ho visto che ne sai di javascript, quindi non dovrebbe essere un problema il PHP.

Ciao!

Snake17x
16-07-2011, 23:49
Sinceramente io non ho letto la guida che ti hanno consigliato. Però, per scrivere in un file di testo, puoi usare la file_put_contents() (http://php.net/manual/en/function.file-put-contents.php) {devi avere PHP5}.

per inviare i dati al server, ti consiglio il modo POST, ma puoi usare anche GET. Questo dovrebbe essere spiegato nella guida sopra al capitolo 23: "Le variabili GET e POST".

Quindi, invii i dati e scrivi il contenuto di _POST['nome_textarea'] nel file tramite la funzione che ti ho indicato.

---

Per leggere dal file, puoi usare la file_get_contents() (http://php.net/manual/en/function.file-get-contents.php). Una cosa del genere:

[...]<textarea name='decidi_te'><?php echo file_get_contents('nome_file.txt'); ?></textarea>[...]

Ho visto che ne sai di javascript, quindi non dovrebbe essere un problema il PHP.

Ciao!


Ciao e grazie per la risposta, se mi fai un esempio semplicissimo mi risolvi tutti i problemi.

<html>
<head>
<title>esempio</title>
</head>
<body>

<script language="javascript">
function esegui(){
localStorage.nome1=LN.n1.value; //SALVATAGGIO NOME1
LN.n3.value=localStorage.nome3; //CARICAMENTO NOME1
}
</script>

<form name="LN">
<input type="text" name="n1" > //FORM DA MODIFICARE
</form>

<form name="AAA">
<input type="button" name="es" onClick="esegui()" > // UNA VOLTA MODIFICATO IL FORM SI CLICCA SU QUESTO TASTO CHE SALVA I CAMBIAMENTI.
</form>

</body>
</html>


Questo è come funziona in javascript col local storage, mi potresti scrivere precisamente come rendere le modifiche comuni per tutti gli utenti( con i sistemi che mi hai descritto prima, ma che ho capito proprio poco :mbe: )

dierre
17-07-2011, 08:12
Insomma te lo dobbiamo fare noi eh? :asd:

E invece no! ;)

Allora qui c'è scritto (al di là del fatto che l'esempio è con l'invio mail) tutto quello che c'è da sapere su come devi implementare la POST o la GET lato html e php: http://www.freewebmasterhelp.com/tutorials/php/6

Qui c'è come scrivere su un file in php: http://www.tizag.com/phpT/filewrite.php

Leggi e cerca di capire, prova a farlo da solo, fai un primo accrocchio, se non va, posta il codice qui che ti si aiuta.

Io tra l'altro ho un esame Martedì, se dopo Martedì non sei riuscito a risolvere ti scrivo il codice completo con tutti i commenti del caso però per il momento provaci da solo perché usare una GET ed una POST sono concetti che poi ti rimangono e son fondamentali.

Snake17x
17-07-2011, 08:21
Insomma te lo dobbiamo fare noi eh? :asd:

E invece no! ;)

Allora qui c'è scritto (al di là del fatto che l'esempio è con l'invio mail) tutto quello che c'è da sapere su come devi implementare la POST o la GET lato html e php: http://www.freewebmasterhelp.com/tutorials/php/6

Qui c'è come scrivere su un file in php: http://www.tizag.com/phpT/filewrite.php

Leggi e cerca di capire, prova a farlo da solo, fai un primo accrocchio, se non va, posta il codice qui che ti si aiuta.

Io tra l'altro ho un esame Martedì, se dopo Martedì non sei riuscito a risolvere ti scrivo il codice completo con tutti i commenti del caso però per il momento provaci da solo perché usare una GET ed una POST sono concetti che poi ti rimangono e son fondamentali.

Guarda mi mancano veramente le basi per il php, sono riuscito ad usarlo spesso andando a caso, o sfruttando esempi e adattandoli a quello che mi serve. Con un esempio banale come quello del form riuscirò a capire il sistema e adattarlo a quello che mi serve veramente.

Mi spiace se vi faccio perdere tempo, ma speravo che qualcumo mi avrebbe aiutato, non c'è problema se c'è da aspettare ;)

Snake17x
19-07-2011, 09:52
Scusate se scasso e se uppo, ma qualcuno potrebbe aiutarmi?

dierre
19-07-2011, 21:04
Oggi ho preso 2 30 e lode consecutivi per cui sto andando a festeggiare. Questo è il codice a orecchio che è da un pò che non uso php, non mi pare ci sia niente di strano ma inviti i colleghi utenti a correggermi se è il caso.


<? // il file si chiama prova.php
if(isset($_POST['testo'])){
$testo = $_POST['testo'];
file_put_contents("miofile.txt",$_POST['testo']);
} else $testo = file_get_contents("miofile.txt");
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Conforming XHTML 1.0 Strict Template</title>
</head>
<body>
<form action="prova.php" method="post">
<input type="text" name="testo" value="<? echo $testo; ?>"/></input>
<button name="invio" type="submit" >Invio</button>
</form>
</body>
</html>


Per eventuali domande rimando a domani dopo il recupero delle forze. Ciaps.

Snake17x
20-07-2011, 11:11
Complimenti per l'esame :D

Vediamo se ho ben capito.
Io creo un file: prova.php
E inserisco tutta quella roba nel file. Lo salvo e lo uppo.
Se è così che devo fare infatti ha funzionato.

Ora sto provando ad applicarlo a più form quindi devo capire bene il funzionamento:


<? // il file si chiama prova.php
if(isset($_POST['testo'])){ //Se il contenuto del form è ???
$testo = $_POST['testo']; //Poni $testo uguale al contenuto del post
file_put_contents("miofile.txt",$_POST['testo']); //Inserisce il contenuto del form nel file
} else $testo = file_get_contents("miofile.txt"); //Altrimenti inserisci nel form il vecchio contenuto del form.
?>

Se è tutto ok, l'unica cosa che non ho capito è l'if.

alemoppo
20-07-2011, 21:25
Nell'if si controlla che esiste realmente il parametro testo passato via post. Lo si verifica tramite la isset() (http://php.net/manual/en/function.isset.php). Quindi, l'if verifica che il dato esiste.. In caso affermativo lo salva, altrimenti lo recupera (sempre dal file) :)

Ciao!

Snake17x
21-07-2011, 10:54
Grazie mille a tutti, sono riuscito ad applicarlo a tutti i form.

Ora mi manca l'ultima cosa, ho dei span, da cui (in javascript) io prendevo gli ID e li modificavo tramite dei prompt.



-------------------- HTML

<span id="span1" class="style7" onClick="changeSpanText1()"> MODIFICA </span>

--------------------- Java
function ChangeSpanText1()
{
localStorage.ELEMENTO = document.getElementById("span1").innerHTML = prompt(); // Salvataggio in local storage del contenuto dello SPAN modificato col prompt
document.getElementById("span1").innerHTML=localStorage.idpsn1; // Imposta nello spam il local storage precedente
}

Dovrei fare la stessa cosa che faccio in java col php suggerimenti?

Snake17x
21-07-2011, 23:10
Ragazzi quindi è impossibile quello che voglio fare?

dierre
23-07-2011, 15:16
Sinceramente non ho capito cos'è che vuoi fare.

Snake17x
23-07-2011, 16:20
-------------------- HTML

<span id="span1" class="style7" onClick="changeSpanText1()"> MODIFICA </span>

--------------------- Java
function ChangeSpanText1()
{
localStorage.ELEMENTO = document.getElementById("span1").innerHTML = prompt(); // Salvataggio in local storage del contenuto dello SPAN modificato col prompt
document.getElementById("span1").innerHTML=localStorage.idpsn1; // Imposta nello spam il local storage precedente
}


Con questo codice (funzionante).
Quando clicco sullo SPAN (ovvero sulla parola "MODIFICA" ) mi si apre un prompt dove inserisco una nuova parola.
Questa nuova parola si sostituisce a "MODIFICA" e viene salvato in local storage, io vorrei fare la stessa cosa in PHP (per rendere la modifica permanente, con lo stesso sistema utilizzato per i form se possibile).

dierre
23-07-2011, 16:51
Puoi sostuituire lo span con un campo input ed hai risolto. Altrimenti andiamo a sfociare nell'asincronia(AJAX), ma questa roba ha una serie di considerazioni da fare. Non si tratta di fare un copia incolla.

Snake17x
23-07-2011, 18:19
Puoi sostuituire lo span con un campo input ed hai risolto. Altrimenti andiamo a sfociare nell'asincronia(AJAX), ma questa roba ha una serie di considerazioni da fare. Non si tratta di fare un copia incolla.

Quindi o faccio il form o nulla?
Esistono dei parametri per i form che annullano i bordi, che centrano il testo ecc?

dierre
23-07-2011, 19:04
Quindi o faccio il form o nulla?
Esistono dei parametri per i form che annullano i bordi, che centrano il testo ecc?

sì da css dovresti aver tutto.

Snake17x
24-07-2011, 08:58
Grazie mille ho risolto.
Ho un ultimo dubbio, posso fare in modo che cliccando un bottone (o qualsiasi altro metodo) sulla pagina compaiano altri form?

Snake17x
28-07-2011, 23:33
Scusate se uppo di nuovo, ma nessuno ha risposto alla mia domanda.

Posso fare in modo che cliccando un bottone questo generi dei form?

tomminno
29-07-2011, 07:49
Scusate se uppo di nuovo, ma nessuno ha risposto alla mia domanda.

Posso fare in modo che cliccando un bottone questo generi dei form?

Ho il vago sospetto che tu stia facendo confusione con i form per gli applicativi desktop.
Un form in html è un tag che contiene tutti i parametri che devono essere inviati al server. Ogni form ha un target di destinazione specificato nell'attributo action. Una pagina può contenere più form.
Quello che generalmente avviene è che tramite il pulsante carichi o tramite ajax un nuovo pezzo di pagina che mostrerà i nuovi dati, oppure rimandi ad un'altra pagina.