salve a tutti,
ho un problemino di passaggio variabili ad una pagina che fa l'upload di un file.
normalmente vengono passate così:
il form:
codice:
<form name="formBox" action="upload.php" enctype="multipart/form-data" method="post">
<input id="up" type="file" name="upload">
<input type="submit">
</form>
la pagina upload.php riceve:
Codice PHP:
$file = $_FILES['upload']['name'];
però io, in quel form, non uso la forma classica ma assegno una funzione js ad ogni elemento del form e mentre per tutto il resto funziona non riesco a recuperare il valore dell'input "file" nella pagina php.
la pagina web è strutturata in un div che contiene altri 2 div dove vengono caricate (tramite js) 2 pagine.php (form.php e upload.php):
codice:
<div id="container">
<div id="divForm"></div>
<div id="divUpload"></div>
</div>
il form (sta nella pagina form.php caricata nel div "divForm"):
codice:
echo'<form name="formBox">
<input id="up" type="file" name="upload">
[img]btn.png[/img]
</form>';
lo script js (anche questo sta nella pagina form.php) che carica la pagina upload.php sul div id="div_upload", passandole 2 parametri POST ("upload" e il parametro dell'input "file" del form che deve essere ricevuto nella variabile $_FILES[]);
codice:
echo'<script>
function btnNew(){
$("#divUpload").load("upload.php",{"act[]":["upl",document.formBox.up.name]});
}
</script>';
solo che la pagina upload php:
Codice PHP:
$act = $_POST['act'][0];
$file = $_FILES['act'][1]['name'];
mi da errore di "undefined index 'upload' " (che è ['act'][1]) mentre per 'upl' (che è ['act'][0]) non mi da nessun errore.
sicuramente sbaglio nella forma di invio (da js) del parametro che viene ricevuto nella variabile $_FILES o nella forma di ricezione (in php) del parametro stesso.
Ho anche cercato (usando la forma classica del form e senza usare js), attraverso un "consiglio" trovato in alcuni forums, di mettere un target="divUpload" nel tag FORM che faccia in modo di caricare la pagina nel div apposito ma non funziona e mi da l'unico effetto di aprire in una nuova scheda la pagina upload.php (cosa che non voglio fare).
il problema è che non essendo ferrato in materia ma son solo uno che legge, interpreta e manipola i linguaggi senza conoscerli (mea culpa) non trovo soluzione nè in logica, nè facendo delle prove, nè in rete.
se qualcuno/a riuscisse a capire il mio ragionamento alquanto contorto e conoscesse una soluzione gli/le sarei tanto grato e imparerei una cosetta in più
grazie 1000 in anticipo.
Luca.