[risolto] passaggio variabile a pagina php con ajax

kmarx

Nuovo Utente
14 Apr 2014
4
0
0
Ciao a tutti,

questo è il mio primo post. Non sono molto esperto di javascript e mentre sto imparando avrei bisogno di un piccolo aiuto perché non riesco a far funzionare uno script.

Allora, io devo inviare una variabile Javascript ad una pagina php (che scrive quella variabile su un file lato server).
La variabile da inviare non è altro che un testo scritto in ckeditor in un'area editabile. Ci sto sbattendo la testa da un po' ma non riesco a farlo funzionare.

Qui il mio codice:

html (index.php)
HTML:
<div id="editable" contenteditable="true">
<?php
    include("chisiamo.html");
?>
</div> <!--editabile -->

javascript (in fondo a index.php)
Codice:
CKEDITOR.inline( 'editable' );

document.getElementById('editable').onkeyup = function() {
	var testo = CKEDITOR.instances.editable.getData();
        $.ajax({
		type: "POST",
		url: 'autosalva.php',
		data: {'testo': testo},
		success: function(data) {   
			if (!data) {
				alert("  Impossibile salvare!\nContatta il webmaster");
			}
		}
	});
};

php (autosalva.php)
PHP:
$testo = $_POST["testo"]; 
$file = fopen("chisiamo.html","w");
fwrite($file,$testo);
fclose($file);

Cosa sto sbagliando?

Grazie

Ciao
kmarx
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Prima di tutto una considerazione logica: usare il keyup farà si che ad ogni tasto premuto verrà inviata una richiesta di scrittura al server, e non è la cosa propriamente più performante da fare, soprattutto se poi scrivi su un file che rischia di corrompersi se non imposti un adeguato lock per impedirne simultanee operazioni di scrittura/lettura su di esso.

Detto ciò, jquery è incluso correttamente nella pagina? Se si, ti consiglio di munirti di firebug (se sei su firefox), o di aprire la console di chrome (col tasto f12) e verificare quali errori ti ritorna javascript durante la pressione dei tasti sul box editabile.
 

kmarx

Nuovo Utente
14 Apr 2014
4
0
0
Grazie per la risposta.

Per quanto riguarda le operazioni di scrittura/lettura ed eventuali corruzioni, sistemerò in modo che non avverrà la lettura e la scrittura dallo stesso file.

jQuery sembrerebbe essere incluso correttamente (infatti ckeditor funziona):

HTML:
<script type="text/javascript" language="javascript" src="js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="js/jquery.dataTables.js"></script>	
<script type="text/javascript" language="javascript" src="ckeditor/ckeditor.js"></script>

Effettivamente qualcosa di strano potrebbe esserci perché se aggiungo plugin a ckeditor (ad esempio autosave) mi sparisce la toolbar. Però pensando ad un bug di ckeditor ho deciso di aggirare il problema creando in proprio uno script di autosalvataggio.

Quando scrivo qualcosa nell'area editabile mi salta fuori l'alert da me imposto (" Impossibile salvare!\nContatta il webmaster"). Firebug mi da il seguente errore:
Codice:
TypeError: $(...).ckeditor is not a function
indicandomi che il guaio risiede nel seguente script:
Codice:
CKEDITOR.disableAutoInline = true;
//config.extraPlugins='onchange'; 
$( document ).ready( function() {
   $( '#editor1' ).ckeditor(); // Use CKEDITOR.replace() if element is <textarea>.
   $( '#editable' ).ckeditor(); // Use CKEDITOR.inline().
   width: "500px"
} );
function setValue() {
    $( '#editor1' ).val( $( 'input#val' ).val() );
}

Tuttavia ho preso questo script dalla documentazione di ckeditor e quindi non saprei comunque come muovermi.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
CKE è standalone, nel senso che la sua implementazione base non si appoggia a jquery, ma è possibile eseguirlo senza di esso.
Per far funzionare il codice che hai riportato devi caricare tra gli script anche l'adapter per jquery:
HTML:
<script src="ckeditor/adapters/jquery.js"></script>
 
Ultima modifica:

kmarx

Nuovo Utente
14 Apr 2014
4
0
0
Sì, infatti c'era, ma immagino di averlo dimenticato nel copia e incolla della mia risposta (che tra l'altro qui non vedo)... è forse in moderazione?
 

kmarx

Nuovo Utente
14 Apr 2014
4
0
0
Risolto!!

Essenzialmente erano due problemi:
il primo era che il seguente codice:
Codice:
success: function(data) {   
    if (!data) {
        alert("  Impossibile salvare!\nContatta il webmaster");
    }
}

non so perché ma fa uscire l'alert anche se la variabile è inviata correttamente e quindi l'ho sostituito con:
Codice:
error: function(result) {
    alert("  Impossibile salvare!\nContatta il webmaster");
}

Il secondo problema dipendeva dal fatto che non avevoi i permessi sul file su cui volevo scrivere.
Una volta variati i permessi sul file tutto ha funzionato.

Anche per quanto riguarda il problema legato all'utilizzo dei plugin dipendeva dalla mancanza di permessi sulle cartelle dei plugin.

Quindi ora tutto ok.

Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
A [RISOLTO] Passaggio di valori con GET tra una immagine e una descrizione PHP 7
G [RISOLTO] Passaggio parametri a php Ajax 3
N [RISOLTO]ancora ..passaggio variabili PHP 13
P [RISOLTO] Passaggio parametri in JQuery/Ajax Ajax 4
M [RISOLTO]Problema controllo e passaggio di valori da una pagina all''altra PHP 4
M [risolto] Passaggio valore tramite link per selezione dati su database. PHP 3
M [RISOLTO]Fermare slideshow immagini al passaggio del mouse. jQuery 3
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 6
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1

Discussioni simili