• User Attivo

    problema pulsante invio

    ciao ragazzi xche' in questo file per far comparire la scritta occupato alla rig 149 devo cliccare due volte sul pulsante invio?
    non riesco a capire il xchè!!!:x :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato:

    <?php
    //Includo i file per la connessione
    //e per la verifica Utente
    require_once('connessione.php');
    require_once('verificalogin.php');
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script type="text/javascript">
    function disabilita (valore1) {

    if (valore1 == "") {
    return true;
    }
    else {
    alert("es già scelto");
    return false;
    }

    }

    function invia(form,statoesercizio){
    if(disabilita(statoesercizio))
    form.submit();
    }

    </script>
    </head>
    <body>

    <h1>TUTOR VISUALIZZA ESERCIZI </h1>

    <p>  </p>

    <table width="76%" border="2" cellpadding="0" cellspacing="0" bordercolor="#999999">
    <tr>

      <td width="16%">titolo esercizio </td>
      <td width="10%">argomento esercizio</td>
      <td width="19%">nome libro da cui &egrave; preso esercizio</td>
      <td width="13%">modalit&agrave; invio soluzione</td>
      <td width="14%">tipo di scuola </td>
      <td width="14%"> anno</td>
      <td width="14%">materia</td>
      <td width="14%">tipo svolgimento richiesto </td>
      <td width="14%">compenso</td>
      <td width="14%">scadenza</td>
      <td width="14%">scelta esercizio </td>
      <td width="14%">scelta esercizi</td>
      <td width="28%">stato esercizio </td>
    </tr>
    

    <?php
    //testare la sessione
    echo @$login_err;
    if(IsSet($_SESSION['tutor'])){
    echo "<p>Benvenuto tutor: "[EMAIL=".@$_SESSION"].@$_SESSION[/EMAIL]['tutor'][0];

    }else{
    echo "<p>Non sei autenticato !";
    echo "<br><a href='login.php'>Effettua Login</a>";
    }
    $usernamen=$_SESSION['tutor'][0];
    //Effettuo il controllo dei dati
    //$strSQL = "SELECT titoloesercizio FROM esercizio";
    $query = "SELECT * FROM esercizio";
    $ris=mysql_query($query) or die("Errore nella query:".mysql_error());

    $numrows = mysql_num_rows($ris);
    for($x=0; $x<$numrows; $x++){
    //Recupero il contenuto di ogni record rovato
    $resrow = mysql_fetch_row($ris);
    $idesercizio=$resrow[0];
    $idtutor=$resrow[1];
    $titoloesercizio = $resrow[2];
    $argomentoesercizio= $resrow[3];
    $testo= $resrow[4];
    $inviosoluzione= $resrow[5];
    $stato= $resrow[6];

    ?>

    <tr>
    <td width="16%">  <? echo $titoloesercizio ; ?></td>

    <td width="10%">&nbsp;
    <? echo$argomentoesercizio ?></td>
    <td width="19%">&nbsp;
    <? echo $testo ?></td>
    <!--<td width="20%"> <a href=./esercizi/<?php echo $titoloesercizio; ?> > leggi esercizio </a></td>-->
    

    <td width="13%"><? echo $inviosoluzione ?> </td>

    <td width="14%">&nbsp;
    

    </td>
    <td width="14%"> </td>
    <td width="14%"> </td>
    <td width="14%"> </td>
    <td width="14%"> </td>
    <td width="14%"> </td>
    <td width="14%"><a href="./esercizi/<?php echo $titoloesercizio; ?>">leggi esercizio</a></td>
    <td width="14%">
    <form $_POST['action']="<?php print $_SERVER["PHP_SELF"]; ?>" name="form<? echo $x ?>" method="POST">

    <input name="statoesercizio" type="hidden" value="<?php echo $stato; ?>">
    <input name="idesercizio" type="hidden" value="<?php echo $idesercizio; ?>">
    <input type="button" name="n" value="Invia" onclick="invia(form<? echo $x ?>,form<? echo $x ?>.statoesercizio.value)">

    <?php
    $idesercizio = @$_POST['idesercizio'];
    $usernamen=$_SESSION['tutor'][0];

    $query4 = "SELECT * FROM tutor WHERE username ='$usernamen'";
    $result4=mysql_query($query4) or die("Errore nella query:".mysql_error());
    $row = mysql_fetch_assoc($result4);
    $idtutor = $row['idtutor'];

    $strSQL = "UPDATE esercizio SET statoesercizio='occupato', idtutor='$idtutor' WHERE idesercizio='$idesercizio'"; //echo $strSQL;
    mysql_query($strSQL)OR die("Errore nella query1:".mysql_error());

    ?>
    </form> <BR>
    <td width="28%"><?php echo $stato; ?> </td> </td>
    </tr>

    <?php
    }

    ?>
    </table>

    <?php
    echo "<br><a href='homepage.php'>Vai all' homepage </a>";
    ?>


  • Moderatore

    Ciao.

    Ultimo avvertimento poi inizio a chiudere qualsiasi post fatto in questo modo.

    1. posta chiaramente il problema, indicando i possibili problemi
    2. tieni bene in mente che un forum non è un help desk.
    3. se, E DICO SE, hai necessità di copiare del codice, scegli bene la parte che può interessare e racchiudila tra i tag [ code ] codice [ / code ] <- senza spazi.

    Grazie 🙂


  • User Attivo

    ciao massy scuami di cuore non volevo essere maleducato e non rispettare le regole. cmq il problema è questo:

    in questa parte del codice, il pulsante invio funziona solo se cliccato due volte.
    la prima volta non fa altro che un refresh della pagina

    ciao e grazie

    
    form $_POST['action']="<?php print $_SERVER["PHP_SELF"]; ?>" name="form<? echo $x ?>" method="POST">
    
    <input name="statoesercizio" type="hidden" value="<?php echo $stato; ?>"> 
    <input name="idesercizio" type="hidden" value="<?php echo $idesercizio; ?>">
    <input type="button" name="n" value="Invia" onclick="invia(form<? echo $x ?>,form<? echo $x ?>.statoesercizio.value)">
    
    <?php
    $idesercizio = @$_POST['idesercizio']; 
    $usernamen=$_SESSION['tutor'][0];
    
    $query4 = "SELECT * FROM tutor WHERE username ='$usernamen'"; 
    $result4=mysql_query($query4) or die("Errore nella query:".mysql_error()); 
    $row = mysql_fetch_assoc($result4); 
    $idtutor = $row['idtutor'];
    
    
    
    $strSQL = "UPDATE esercizio SET statoesercizio='occupato', idtutor='$idtutor' WHERE idesercizio='$idesercizio'"; //echo $strSQL;
    mysql_query($strSQL)OR die("Errore nella query1:".mysql_error());
    
    ?>
    
    

  • Moderatore

    Ma non devi scusarti! Ti avvertivo poiché 3d del genere di solito non hanno risposta in quanto non si capisce il problema e c'è troppo da leggere. 🙂

    function invia(form,statoesercizio){
    if(disabilita(statoesercizio))
    form.submit();
    }

    dove dichiari la funzione disabilita?

    Credo sia un problema più di js ad occhio.

    Prova a spiegarmi cosa vorresti fare e vediamo come farlo,ok? 🙂

    :ciauz:


  • User Attivo

    praticamente col tasto invio metto nel campo a destra del pulsante la scritta "occupato", solo che per funzionare devo cliccarci due volte xche al primo clic ricarica la pagina.

    poi la funziona js interviene in questo caso:

    se cè già la scritta occupato e un utente clicca su invio viene richiamata quella funzione che mi da alert..

    mentre se non cè la scritta occupato dovrebbe partire l'invio