Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220

    Campo di form con doppia action

    Ciao a tutti, ho un piccolo problema..
    Vi spiego:
    Ho un form dove un campo deve fare una doppia action (upload.php e pagina.php).
    Ora vorrei che dopo che esegue il submit (di tre action) mi appaia il risultato del primo action (pagina.php).
    Ovviamente non mi esegue ne il submit ne mi mostra risultati....

    Ecco il codice:


    <form name=primoform action=pagina.php method=post>
    <input type=text name=Nome>
    </form>

    <form name=secondoform action=upload.php method=post enctype=multipart/form-data>
    <input type="file" name="upfile">
    </form>


    <form name=terzoform action=pagina.php method=post>
    <input type=hidden name="upfile">
    </form>

    <script>
    function submitter(){
    document.terzoform.Nome.value=document.secondoform .Nome.value;

    document.secondoform.submit();
    document.terzoform.submit();
    }
    </script>

    <form>
    <input type=button value=Invia onClick="document.primoform.submit(); submitter();">
    </form>

    Dove sbaglio??
    Grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione.

    Ogni form puo` avere una sola action (e questo mi pare ch elo hai capito), ma cosa succede al submit?

    1. premi il tasto submit
    2. il client invia al server i dati del form (in odalita` get o put a seconda delle specifiche)
    3. il server elabora i dati (attraverso il programma chiamato dall'action - nel tuo caso PHP)
    4. il server spedisce una pagina di ritorno.

    Ora tu provi ad inviare tre form dalla stessa pagina.
    La cosa non e` possibile, e a seconde delle velocita` relative del server e del client da qualche parte si crea una confusione.

    Quello che puoi fare e` dare un target ai tuoi form. In tal caso il server risponde nella pagina indicata dal target, e la cosa potrebbe anche funzionare (a parte che il server si puo` trovare a servire tre pagine contemporaneamente (con la stessa sessione), cosa che puo` anche dargli fastidio (ma questo dipende dal server).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Ho provato dando a tutti Target blank....
    Per il primo form avviene il submit, per gli altri nulla!!
    E mi esce inoltre un errore nella pagina (invece di operazione completata)
    Ho commesso qualche errore nello script?

    ovviamente ho sistituito
    document.terzoform.Nome.value=document.secondoform .Nome.value;
    con
    document.terzoform.upfile.value=document.secondofo rm.upfile.value;

  4. #4
    Reale_Augello
    Guest

    A...

    ... mio avviso sei costretto a creare tre distinte pagine PHP, ognuna per un form.

    Nella prima, ti occupi di fare il submit verso la seconda e da quest'ultima verso la terza, portandoti dietro i parametri che ti interessano.

    Ciao !

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Ciao, forse ho risolto il problema facendo due form, uno che immagazzina i dati nel db ed uno che dovrebbe fare l'upload...
    Ma il problema è proprio quest'ultimo...
    Infatti ho pensato di fare un form con un campo hidden che abbia come valore lo stesso del campo di selezione dei file (Quello con il pulsante sfoglia) del primo form...
    Il problema è COSA CI SCRIVO dentro value???
    Se non sbaglio dovrebbe essere un file "temporaneo", ho provato in diversi modi es:<? php echo $file_name; ?> oppure $_FILES ma non funziona... quando faccio il submit (allega) mi dice che non ho selezionato il file da uploadare!
    Ecco il form che ho fatto:


    <form name=primoform action=pagina.php method=post>
    <input type=text name=Nome>
    <input type=file name=upfile>
    <input type=submit value=Invia>
    </form>

    <form name=secondoform action=upload.php method=post enctype=multipart/form-data>
    <input type="file" name="upfile" value="COSA CI SCRIVO???">
    <input type=submit value=Allega>
    </form>

    Mi date una mano per favore?
    Grazie!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Scusatemi se riscaldo il post, ma da quanto ho capito dovrei fare uno script che dica che il value dell'input hidden del secondo form deve essere uguale a quello che l'utente seleziona nel campo file del primo form.
    E come si fa?
    Ho fatto due prove e...
    Avete qualche suggerimento?
    Grazie ancora e scusatemi.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220
    Ho trovato questo script che estrae il value di un campo "file".
    Come si può modificare per far si che il risultato invece di apparire come "alert" venga messo al posto del value dell'input hidden del secondo form?
    Ecco lo script:


    <script language="JavaScript"><!--
    function extract(what) {
    if (what.indexOf('/') > -1)
    answer = what.substring(what.lastIndexOf('/')+1,what.length);
    else
    answer = what.substring(what.lastIndexOf('\\')+1,what.lengt h);
    alert(answer);
    }
    //--></script>

    <form name="myform">
    <input type="file" name="myfile">
    <input type="button" value="Test" onClick="extract(this.form.myfile.value)">
    </form>

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    ecco

    <script language="JavaScript"><!--
    function extract(what) {
    if (what.indexOf('/') > -1)
    answer = what.substring(what.lastIndexOf('/')+1,what.length);
    else
    answer = what.substring(what.lastIndexOf('\\')+1,what.lengt h);
    document.secondoForm.campo.value=answer;
    }
    //--></script>

    <form name="myform">
    <input type="file" name="myfile">
    <input type="button" value="Test" onClick="extract(this.form.myfile.value)">
    </form>
    <form name="secondoForm">
    <input type="hidden" name="campo">
    </form>



  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    220

    Sono due giorni che impazzisco...

    Non mi funziona...
    Sono due giorni che ci sbatto ma non funziona!:master:
    Il tutto si compone di due pagine, l'invio dei dati alla prima funziona ma l'invio alla seconda (upload.php) non vuole proprio funzionare!!!
    Mi dice che non ho selezionato nessun file da uploadare! Sicuramente la value del secondo form non viene generata dallo script!

    Ti posto i codici delle due pagine, nella speranza che possiate aiutarmi..

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <table cellspacing=1 cellpadding=8 width="100%" border=0>
    <tbody>
    <tr>
    <td class=backtable>

    <script language="JavaScript"><!--
    function extract(what) {
    if (what.indexOf('/') > -1)
    answer = what.substring(what.lastIndexOf('/')+1,what.length);
    else
    answer = what.substring(what.lastIndexOf('\\')+1,what.lengt h);
    document.teschio.email.value=answer;
    }
    //--></script>


    <form name=stress action=http://www.sito.com/index.php?module=test method=post>
    <table width="100%" border=0>
    <tbody>
    <tr>
    <td>
    <table width="100%" border=0>
    <tbody>
    <tr valign=center align=left>
    <td>Numero Circolare</td>
    <td>
    <input id=numec
    maxlength=100 size=32 name=numec>
    </td>
    <td>Testing data</td>
    </tr>
    <tr valign=center align=left>
    <td>Testo (*)</td>
    <td>
    <textarea id=testo name=testo rows=10 cols=60></textarea>
    </td>
    </tr>
    <tr valign=center align=left>
    <td>Note (*)</td>
    <td>
    <textarea id=description name=description rows=10 cols=60></textarea>
    </td>
    </tr>
    <tr valign=center align=left>
    <td>allegato</td>
    <td>
    <input type=hidden value=32 name=MAX_FILE_SIZE>
    <input id=problema accesskey=100 type=file name=problema>
    </td>
    </tr>
    <tr valign=center align=left>
    <td>
    </td>
    <td>
    <input id=submitter type=hidden value=Teschio name=submitter>
    </td>
    </tr>
    </tbody>
    </table>
    </td>
    </tr>
    </tbody>
    </table>




    <input type=submit align=middle value="Invia" name="submit">
    </form>
    <form name=teschio action=upload.php method=post target=_blank enctype=multipart/form-data>
    <input type=hidden name=problema>
    <input onClick="extract(this.form.problema.value); document.teschio.submit();" type=button value=Allegato name="button">
    </form>
    </td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>

    PAGINA UPLOAD.PHP


    <?php

    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
    if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/

    $dada1 = "oggetto";
    $dada2 = "numero";
    $upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // Eventuale nuovo nome da dare al file uploadato
    $new_name = "$dada1 - $dada2".strrchr($_FILES["problema"]["name"],'.');


    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name : $_FILES["problema"]["name"];

    if(trim($_FILES["problema"]["name"]) == "") {
    die("Non hai indicato il file da uploadare !");
    }

    if(@is_uploaded_file($_FILES["problema"]["tmp_name"])) {
    @move_uploaded_file($_FILES["problema"]["tmp_name"], "$upload_dir/$new_name")
    or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory
    dove fare l'upload.");
    } else {
    die("Problemi nell'upload del file " . $_FILES["problema"]["name"]);
    }

    echo "L'upload del file " . $_FILES["problema"]["name"] . " è avvenuto correttamente";

    ?>


    Qualche suggerimento???


    Grazie mille ancora!

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ciao,
    a parte
    document.teschio.email.value=answer;
    dove non c' è campo 'email'

    in teschio non c' è un campo di tipo file,
    x php in $_FILES non dovrebbe esservi nulla, o sbaglio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.