Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    65

    Problema form php + javascript

    Ciao a tutti, ho uno strano problema che non riesco a risolvere.
    ho creato una form con vari campi:
    Codice PHP:
    <form name='nuovo' action='ins.php' onsubmit="return controlla();" method='post' enctype="multipart/form-data">
        <
    table width="400" border="0" cellspacing="0" cellpadding="0">
          <
    tr>
            <
    td>Titolo:</td>
            <
    td><input type="text" name="titolo" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Trailer:</td>
            <
    td><input type="file" name='trailer' size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td colspan="2"><div align="center"><input type="submit" value="Inserisci"/></div></td>
        </
    tr>
        </
    table>
       </
    form
    (per non rendere il post troppo lungo ho eliminato un pò di campi presente nella form)

    Il problema è il seguente se eseguo la funzione "controlla()"(quando viene premuto il bottone inserisci) nella pagina ins.php non riesco a prelevare i dati della form, infatti quando eseguo l'istruzione echo($_POST["titolo"]); mi dice che l'indice titolo non è definito.
    Se invece elimino la funzione controlla() allora l'istruzione echo($_POST["titolo"]); viene eseguita senza problemi.

    Vi prego aiutatemi non mi è mai successo una cosa del genere!! Grazie a tutti

    ps:riporto anche una parte della funzione controlla per far vedere quello che fa:
    codice:
    function controlla()
    {
    	var tit = 0;
    	if(document.nuovo.titolo.value == "")
    		{tit = 1;}
            var trailer = 0;
    	if(document.nuovo.trailer.value == "")
    		{trailer = 1;}
    if(tit||trailer)
    	{
    		var testoAlert = "";
    		if(tit)
    			testoAlert += "-Titolo non inserito \n";
                    if(trailer)
    			testoAlert += "-Trailer non inserito \n";
    		alert("Attenzione! \n" + testoAlert);
    		
    		return (false);
    	}
    	return true;
    }

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    cambia

    <input type="submit" value="Inserisci"/>

    con

    <input type="button" value="Inserisci" onClick="Controlla()">


    poi leva l'onsubit dal form

    e nella funzione controlla invece di return true scrivi document.nuovo.submit();

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    65
    Grazie della risposta, ma sfortunatamente il problema resta.

    La cosa strana è che in un altra pagina sempre con una form del genere e con una funzione javascript praticamente identica, funziona tutto correttamente.

    Stò impazzendo

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    infatti a me sembra tutto corretto

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    65
    mi sono accorto che il problema non è il javascript...ma la form.
    Infatti attraverso questa form, permetto il caricamento di 2 file, e questo non gli piace.
    Se inserisco un solo campo file funziona tutto ed i parametri vengono passati se ne metto 2 il passaggio di parametri non funziona più. Qualcuno mi sa dire il perche???
    Per farvi capire meglio riporto tutto il codice della form ed il codice della pagina che dovrebbe elaborare i dati passati.

    FORM:
    Codice PHP:
    <form name="nuovo" method="post" enctype="multipart/form-data" action="ins.php">
        <
    table width="400" border="0" cellspacing="0" cellpadding="0">
          <
    tr>
            <
    td>Titolo:</td>
            <
    td><input type="text" name="titolo" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Genere:</td>
            <
    td><input type="text" name="genere" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Target:</td>
            <
    td><input type="text" name="target" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Tecnica:</td>
            <
    td><input type="text" name="tecnica" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Format:</td>
            <
    td><input type="text" name="formato" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Posizione:</td>
            <
    td><select name="grado">
                <
    option value="1">1</option>
                <
    option value="2">2</option>
                <
    option value="3">3</option>
                <
    option value="4">4</option>
                <
    option value="5">5</option>
                <
    option value="6">Non presente</option>
                </
    select>
            </
    td>
          </
    tr>
        <
    tr>
            <
    td>Banner:</td>
            <
    td><input type="file" name="banner" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td>Trailer:</td>
            <
    td><input type="file" name="trailer" size="40"/></td>
          </
    tr>
        <
    tr>
            <
    td colspan="2"><div align="center"><input type="submit" value="Inserisci"/></div></td>
        </
    tr>
        </
    table>
       </
    form

    ins.php:
    Codice PHP:
    <?PHP
                    $titolo
    =$_POST['titolo'];
            
    $grado=$_POST['grado'];
            
    $genere=$_POST['genere'];
            
    $target=$_POST['target'];
            
    $tecnica=$_POST['tecnica'];
            
    $format=$_POST['formato'];
            
    $file_name1 $_FILES['banner']['name'];
            
    $file_name2 $_FILES['trailer']['name'];
            echo(
    $file_name1);
            echo(
    $file_name2);?>
    Vi prego aiutatemi

  6. #6
    Ho provato il tuo codice ed a me in locale funziona perfettamente, tutti i parametri vengono passati in POST anche con entrambi i campi file valorizzati.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    65
    ma allora quale può essere il problema????qualche impostazione di easyphp???windows???non sò più che pensare

  8. #8
    Non saprei, io non ho mai utilizzato questi pacchetti preconfezionati, che sinceramente odio. Ho sempre installato separatamente Apache, PHP e MySQL.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    65
    allora proverò anche io così...grazie dell'aiuto...almeno adesso sono certo che il codice che ho scritto è corretto

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.