Ciao Ragazzi!
Avrei bisogno di un vostro aiutino.
Vi spiego mio problema:
Ho realizzato una form che al click del pulsante invia spedisce i dati al database.
Per rendere tutto più web 2.0 ho pensato di usare la tecnologia ajax per comunicare con mio database mysql e php in modo più veloce per salvare le informazioni.
Attualmente il tutto funziona perfettamente in quanto lo script java in possesso usa come:
setRequestHeader("Content-type", "application/x-www-form-urlencoded").
Il problema nasce nel momento in cui un mio cliente chiede che oltre che salvare i dati(solo testo campi text) inviare anche dalla form una immagine. Purtroppo dal file processa.php che si occupa di interfacciare con mysql non riceve le info del campo type=file name=”img” che da php avrebbe come variabile un ($_FILES[“img”]).
Ho provato a cambiare
setRequestHeader("Content-type", "application/x-www-form-urlencoded");
in
setRequestHeader("Content-type", "multipart/form-data");
ma nulla da fare! Anzi, addirittura con setRequestHeader("Content-type", "multipart/form-data");
le altre form che hanno solo il compito di inviare testo non funzionano più, costringendomi di ritornare sempre al punto di partenza, cioè utilizzare solo:
setRequestHeader("Content-type", "application/x-www-form-urlencoded").
SAPETE COME SI FA PER INVIARE DATI(TESTO + IMMAGINE)? MAGARI CON UN SEMPLICE ESEMPIO? in javascript e php
GRAZIE MILLE?
RIMANGO IN ATTESA DI UNA VOSTRA GENTILE RISPOSTA.
uso questa semplice funzione:
function InviaDati(data)
{
// istanziamo l'oggetto XMLHttpRequest
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = ProcessaDati;
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
}
// controlliamo la versione di ActiveX
else if (window.ActiveXObject)
{
req = new ActiveXObject('Msxml2.XMLHTTP')
if (req)
{
req.onreadystatechange = ProcessaDati;
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
}
}
}

Rispondi quotando