jQuery / ajax – Inviare dati via post
- Questo topic ha 24 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da Angelo.
- AutorePost
- 26 Luglio 2011 alle 12:59 #1854AngeloPartecipante
Text
27 Luglio 2011 alle 07:23 #1855jqueryitaliaAmministratoreTendo a supporre che l’errore sia nel file sender.php.
Infatti ho creato una pagina di test con il tuo codice, questa:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="it-IT"> <head> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'></script> <script type='text/javascript'> function Sender(){ var mess = $("#input").val(); $.ajax({ type: 'POST', url: 'sender.php', data: 'mess='+mess, cache: false, success: function(result){ $("#formresult").html(result); } }); } </script> </head> <body> <form name="formtext" action="javascript:;"> <textarea id="input" value=""></textarea> <input type="button" onclick="Sender();" value="invia"> </form> <div id="formresult"></div> </body> </html>
ed una pagina di ricezione (la tua sender.php) che si limita a stampare il dato ricevuto in post:
<?php echo $_POST; ?>
Ho modificato lo script con la chiamata ajax in modo che, in caso di successo, stampi il valore del post nel div formresult.
Ho poi eseguito un test inserendo nella texarea un testo formato da 3.411 caratteri che mi è stato restituito in maniera corretta.
Se vuoi, prova ad inserire il codice del tuo file sender.php che vedo se posso aiutarti a risolvere il problema.
27 Luglio 2011 alle 10:15 #1856AngeloPartecipanteHo fatto la prova ha stampare e funziona, ma il messaggio non viene inviato al db…
CREATE TABLE IF NOT EXISTS mess ( id int(11) NOT NULL AUTO_INCREMENT, date int(11) NOT NULL DEFAULT '0', message text NOT NULL, PRIMARY KEY (id), FULLTEXT KEY message (message) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
28 Luglio 2011 alle 07:17 #1857jqueryitaliaAmministratoreCreata la tabella e rieseguita la prova a me funziona tutto in maniera corretta.
Questo il codice del mio sender.php:
<?php $message = $_POST; $date = time(); $link = mysql_connect('localhost', 'DBUSER', 'DBPASSWORD'); if (!$link) { echo 'Could not connect to DB. Error: '.mysql_error(); die(); } $db_selected = mysql_select_db('DBTABLE', $link); if (!$db_selected) { echo "Can't use table 'DBTABLE'. Error: ".mysql_error(); die(); } $query = "INSERT mess SET "; $query .= "date = ".$date.", "; $query .= "message = '".$message."'"; $result = mysql_query($query); if (!$result) { echo 'Invalid query. Error: '. mysql_error(); die(); } else { echo 'Message insert!'; } ?>
Ovviamente devi sostituire DBUSER, DBPASSWORD e DBTABLE con i tuoi valori 😉
4 Agosto 2011 alle 21:59 #1858AngeloPartecipanteCi ho provato ma non capisco cosa non funziona…
5 Agosto 2011 alle 07:12 #1859jqueryitaliaAmministratoreDato per scontato che l’errore non è generato da jQuery, hai 2 possibili soluzioni:
– usi il ‘mio’ sender.php’;
– inserisci qui il codice del tuo sender.php che ci dò un’occhiata.
Mi viene poi in mente un’altra cosa che potrebbe aiutarti: prova ad inserire a mano la query che esegui attraverso phpmyadmin e controlla se genera qualche errore 😉
5 Agosto 2011 alle 15:00 #1860AngeloPartecipanteHo capito nel testo che copiavo c’era un apice singolo, per questo non mi faceva inviare il testo, secondo te ce qualche modo che posso fare invece di convertire il testo in asci per i caratteri speciali.. xD
5 Agosto 2011 alle 21:06 #1861jqueryitaliaAmministratoreCrea le pagine in formato UTF8 senza BOM (puoi farlo editandole con l’editor free notepad++) ed imposta anche il db in UTF8.
In questo modo non avrai nessuna necessità di conversione 😉
8 Agosto 2011 alle 14:35 #1862AngeloPartecipanteSto avvengo problemi con la codifica del caratteri accentati, ho provato a metter utf-8
ma non funziona….
9 Agosto 2011 alle 18:43 #1863jqueryitaliaAmministratoreNon è che non funziona, è che probabilmente stai sbagliando qualche cosa… 😉
Dove hai problemi nella codifica dei caratteri accentati?
Nella pagina o nel dato salvato nel DB?
- AutorePost
- Devi essere connesso per rispondere a questo topic.