refresh non desiderato

stefanone69

Nuovo Utente
11 Giu 2013
9
0
0
Salve a tutti,
è la prima volta che scrivo in questo Forum vi chiedo scusa se non rispetto tutte le regole ma chi ha mai voglia e tempo di leggerle? :o

Sto realizzando una piccola applicazione web in php per registrare le competenze mie e dei miei colleghi, tutto funziona perfettamente ma mi sono bloccato sulla più elementare delle operazioni :

I dati immessi in un form vengono postati direttamente nel db mysql, ho voluto aggiungere dei button che dovrebbero modificare il value di alcuni input del form in modo da semplificare degli inserimenti ripetitivi ma quando la funzione javascript viene eseguita i dati nell'input compaiono per un secondo poi la pagina viene ricaricata e spariscono! Non mi era mai successo prima ma sto uscendo pazzo!!!
Qualcuno sa spiegarmi perchè??? E magari come risolvere???
Grazie anticipatamente a chi ha un secondo da sciupare per me :crying:

La funzione è: 'normal'

Codice:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Nucleo Manutentivo</title>
<meta name="description" content="">
<meta name="author" content="StefanoNe">
<link rel="stylesheet" type="text/css" href="style.css">
    
        <?php   
     $id = $_GET['id'];
     $giorno = $_GET['giorno'];

      $link = mysqli_connect("localhost","xxxxxxx","","xxxxxxx") or die("Error " . mysqli_error($link)); 
       if(isset($_POST['invia'])) {
    $matricola = $_POST['Matricola'];
    $cognome = $_POST['Cognome'];
        $nome = $_POST['Nome'];
$password = $_POST['Password'];
  $km = $_POST['Km'];
   $tempo = $_POST['Tempo'];
     $id= $_POST['id'];
$query = "UPDATE agenti SET Matricola = '" . $matricola . "', Cognome = '" . $cognome . "', Nome = '" . $nome . "', Password = '" . $password . "', Km = '" . $km . "', Tempo = '" . $tempo . "' WHERE ID=".$id; 
$result = mysqli_query($link, $query);
    }
    
     if(isset($_POST['Salva'])) {
        $Notte = (isset($_POST['Notte'])) ? 1 : 0;
        $Cantiere = (isset($_POST['Cantiere'])) ? 1 : 0;
        $Reperibile = (isset($_POST['Reperibile'])) ? 1 : 0;
        $Trasferta = (isset($_POST['Trasferta'])) ? 1 : 0;
        $Trasup = (isset($_POST['Trasup'])) ? 1 : 0;
     
$query = "SELECT * FROM Competenze WHERE IDAgente=".$id." AND Giorno= STR_TO_DATE('".$giorno."', '%d/%m/%Y' )" or die("Error in the consult.." . mysqli_error($link)); 
$result = mysqli_query($link, $query);
if(@$result->num_rows > 0)
{
    $riga = mysqli_fetch_array($result);
    $idcomp = $riga["ID"];
$query2 = "UPDATE Competenze SET Ticket = '". $_POST['Ticket']."', IndNotte = '".$Notte."', Indcanot = '".$Cantiere."', IndReper = '".$Reperibile."', Chiamate = '". $_POST['Chiamate']."', Trasferta = '".$Trasferta."',";
$query2 = $query2."InizioLinea = '". $_POST['Iniziol']."', FineLinea = '". $_POST['Finel']."', Scontrino = '".$_POST['Scontrino']." ', TrasfertaSup12 = '".$Trasup."', StraordInizio = '". $_POST['Straini']."', StraordFine = '". $_POST['Strafine']."', Assenza = '". $_POST['Assenza']."', Annotazioni = '". $_POST['Annotazioni']."'";
$query2 = $query2." WHERE ID = ".$idcomp;
}
else
{

$query2 = "INSERT INTO Competenze (IDAgente, Giorno, Ticket, IndNotte, Indcanot, IndReper, Chiamate, Trasferta, InizioLinea, FineLinea, Scontrino, TrasfertaSup12, StraordInizio, StraordFine, Assenza, Annotazioni)";
$query2 = $query2." VALUES ('".$id."',STR_TO_DATE('".$giorno."', '%d/%m/%Y' ),'". $_POST['Ticket']."','".$Notte."','".$Cantiere."','".$Reperibile."','". $_POST['Chiamate']."','".$Trasferta."','". $_POST['Iniziol']."','". $_POST['Finel']."','".$_POST['Scontrino']."','".$Trasup."','". $_POST['Straini']."','". $_POST['Strafine']."','". $_POST['Assenza']."','". $_POST['Annotazioni']."')";
}
 $result = mysqli_query($link, $query2);

     }
    
     mysqli_close($link);

    ?>
    <script language="javascript" type="text/javascript" src="datetimepicker.js"></script>
  <script>
   function check() {
    
notte = "<?php print $Notte; ?>";
Cantiere = "<?php print $Cantiere; ?>";
Reperibile = "<?php print $Reperibile; ?>";
Trasferta = "<?php print $Trasferta; ?>";
Trasup = "<?php print $Trasup; ?>";
if (notte == "1") {
    document.getElementById("Notte").checked = true;
}
 if (Cantiere == "1") {
    document.getElementById("Cantiere").checked = true;
}
if (Reperibile == "1") {
    document.getElementById("Reperibile").checked = true;
}
if (Trasferta == "1") {
    document.getElementById("Trasferta").checked = true;
}
if (Trasup == "1") {
    document.getElementById("Trasup").checked = true;
}
  
}

        function normal() {
document.getElementById("Ticket").value = "1";
document.getElementById("Iniziol").value = "08:00:00";
document.getElementById("Finel").value = "13:00:00";

      }

</script>
</head>

<body onload="check();">
      
    
    <div class="csstab"style="width:600px;">
    
     <img style="text-align: center;display: block; margin-left: auto; margin-right: auto;" src="logo.gif" alt="" />       
        <table>
                        <tr><td colspan=3>
            <h2 style="text-align: center;font-family: verdana, geneva, sans-serif;"><em>Nucleo Manutentivo</em></h2>
    <h2 style="text-align: center;"><span style="font-family: verdana, geneva, sans-serif;"><em>IS Orvieto LL</em></span></h2>
    </td></tr>
    <tr><th>Matricola</th><th>Cognome</th><th>Nome</th></tr><tr></tr>

  <form action="<?=$_SERVER['PHP_SELF']."?id=".$id."&giorno=".$giorno;?>" method="post">
  
 <?php
$link = mysqli_connect("xxxx","xxxx","","xxxxx") or die("Error " . mysqli_error($link)); 
$query = "SELECT * FROM agenti WHERE ID=".$id or die("Error in the consult.." . mysqli_error($link)); 
$result = mysqli_query($link, $query);
$riga = mysqli_fetch_array($result);
echo "<tr><td><input type = \"text\" name=\"Matricola\" id=\"Matricola\" value=\"".$riga["Matricola"]."\"></td>";
echo "<td><input type = \"text\" name=\"Cognome\" id=\"Cognome\" value=\"".$riga["Cognome"]."\"></td>";
echo "<td><input type = \"text\" name=\"Nome\" id=\"Nome\" value=\"".$riga["Nome"]."\"></td></tr>";
echo "<tr><th>Password</th><th>Km</th><th>Tempo</th></tr>";
echo "<tr><td><input type = \"password\" name=\"Password\" id=\"Password\" value=\"".$riga["Password"]."\"></td>";
echo "<td><input type = \"text\" name=\"Km\" id=\"Km\" value=\"".$riga["Km"]."\"></td>";
echo "<td><input type = \"text\" name=\"Tempo\" id=\"Tempo\" value=\"".$riga["Tempo"]."\"></td>";
echo "<input type = \"hidden\" name=\"id\" id=\"id\" value=\"".$riga["ID"]."\"></td>";
echo "</tr><tr><td colspan=3 style='text-align: center;'><input type=\"submit\" name=\"invia\" value=\"Modifica\"></td></tr>";
mysqli_close($link);
?>
      </form></table></div>
    <p></p>
    
        <div class="csstab"style="width:600px;">
            
             <form name="giorno"  method="post" action="agente.php?">
           
<script>
    
    
function cambiagiorno(giorno) {
  id="<?php echo($id);?>";
    location.href="agente.php?id="+id+"&giorno="+giorno;
}
</script>
 <table>             
 <tr>	  	<td>
	  		<input onchange="cambiagiorno(this.value)" type="Text" id="Giorno" maxlength="25" size="25" value="<?php echo $giorno; ?>"><a href="javascript:NewCal('Giorno','ddmmyyyy',false,24)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a>
	  		<span class="descriptions">Seleziona un giorno</span>
	  	</td>
                
                <td><input type="button" onclick="cambiagiorno(document.giorno.Giorno.value)" name="Conferma" value="Conferma"></td>
	  </tr></table></form>
</div>

    <p></p>


        <div class="csstab" style="width:600px; ">
 <form name="formsalva" id ="formsalva" action="<?=$_SERVER['PHP_SELF']."?id=".$id."&giorno=".$giorno;?>" method="post">            
<table style="text-align: center; width:600px; ">
    
    <tr><td colspan=3>Competenze</td></tr>
    
      <tr><th >Ticket</th><th >Ind. Notte</th><th >Ind. Cantiere N.</th></tr><tr></tr>
 
 <?php
$link = mysqli_connect("xxxxx","xxxxx","","xxxxxxx") or die("Error " . mysqli_error($link)); 
$query = "SELECT * FROM Competenze WHERE IDAgente=".$id." AND Giorno = STR_TO_DATE('".$giorno."', '%d/%m/%Y' )" or die("Error in the consult.." . mysqli_error($link)); 
$result = mysqli_query($link, $query);
$riga = mysqli_fetch_array($result);
mysqli_close($link);
echo "<tr><td  ><input type = \"text\" name=\"Ticket\" id=\"Ticket\" value=\"".$riga["Ticket"]."\"></td>";
echo "<td ><input type = \"checkbox\" name=\"Notte\" id=\"Notte\" value=\"".$riga["IndNotte"]."\"";
echo "></td>";
echo "<td ><input type = \"checkbox\" name=\"Cantiere\" id=\"Cantiere\" value=\"".$riga["Indcanot"]."\"></td></tr>";

echo "<tr><th>Ind. Reperibile</th><th>Chiamate</th><th >Trasferta</th></tr>";
echo "<td ><input type = \"checkbox\" name=\"Reperibile\" id=\"Reperibile\" value=\"".$riga["IndReper"]."\"></td>";
echo "<td ><input type = \"text\" name=\"Chiamate\" id=\"Chiamate\" value=\"".$riga["Chiamate"]."\"></td>";
echo "<td ><input type = \"checkbox\" name=\"Trasferta\" id=\"Trasferta\" value=\"".$riga["Trasferta"]."\"></td></tr>";

echo "<tr><th >Ind. Linea Inizio</th><th >Ind. Linea Fine</th><th>Scontrino</th></tr>";
echo "<tr><td ><input type = \"text\" name=\"Iniziol\" id=\"Iniziol\" value=\"".$riga["InizioLinea"]."\"></td>";
echo "<td ><input type = \"text\" name=\"Finel\" id=\"Finel\" value=\"".$riga["FineLinea"]."\"></td>";
echo "<td ><input type = \"text\" name=\"Scontrino\" id=\"Scontrino\" value=\"".$riga["Scontrino"]."\"></td></tr>";


echo "<tr><th >Trasferta sup. 12h</th><th >Straordinario inizio</th><th >Straordinario fine</th></tr>";
echo "<td ><input type = \"checkbox\" name=\"Trasup\" id=\"Trasup\" value=\"".$riga["TrasfertaSup12"]."\"></td>";
echo "<td ><input type = \"text\" name=\"Straini\" id=\"Straini\" value=\"".$riga["StraordInizio"]."\"></td>";
echo "<td ><input type = \"text\" name=\"Strafine\" id=\"Strafine\" value=\"".$riga["StraordFine"]."\"></td></tr>";


echo "<tr><th colspan=3>Assenza</th></tr>";
echo "<tr><td>C/PF/M/R/RC/INF/FE/FS/SC/AG</td>";
echo "<td colspan=2><input style='width:90%;' type = \"text\" name=\"Assenza\" id=\"Assenza\" value=\"".$riga["Assenza"]."\"></td></tr>";

echo "<tr><th colspan=3>Annotazioni</th></tr>";
echo "<td  colspan=3><input style='width:90%;' type = \"text\" name=\"Annotazioni\" id=\"Annotazioni\" value=\"".$riga["Annotazioni"]."\"></td></tr>";

echo "<input type = \"hidden\" name=\"id\" id=\"id\" value=\"".$riga["ID"]."\"></td>";
echo "<input type = \"hidden\" name=\"giorno\" id=\"giorno\" value=\"".$giorno."\"></td></tr>";


?>
   <tr><td colspan=3><button onclick="normal()">Giornata normale</button>&nbsp<button onclick="prenotte()">Pre notte</button>&nbsp<button onclick="notte()">Notte</button>&nbsp
   <button onclick="preve()">Prenotte Venerdi</button>&nbsp<button onclick="sabnot()">Notte Sabato</button>&nbsp</button>&nbsp<button onclick="notte()">Notte</button></td></tr>
   
    <tr><td colspan=3 style='text-align: center;'><input style='font-size:16px' id ="Salva" type="submit" name="Salva" value="Salva"></td></tr>
 </table>  </form>  <p></p>

        

<table>
    <tr><td>Interventi</td></tr>
</table>    <p></p>
             <?php
 if ($id == 5) {
   echo "<p style='text-align: center'><a href='add.php' >Edit</a></p>";}
    ?>
    </div>
        
</body>

</html>
 
Ciao, il tag button a quanto pare (non lo sapevo fino ad adesso) si comporta come un submit quindi ti ilnvia il form e ricarica la pagina. per risolvere metti return false dopo il richiamo della funzione.
Il codice in generale è molto disordinato.
 
Grazie!!! Non puoi capire quanto tempo è che cerco di risolvere!!!!

Non faccio lo sviluppatore di mestiere e quindi i miei lavori sono fatti nei ritagli di tempo e di fretta, risultato: tanto disordine :o

Comunque grazie ancora!

Per chi legge questo post nel tentativo di risolvere un problema simile al mio ho modificato questo:
Codice:
<button onclick="normal()">

con questo:
Codice:
<button onclick="normal(); return false;">

ed ho risolto!

Ciao
 
Io ho riscontrato un problema, credo, simile usando Notepad. Vi avverto che al momento sto frequentando il Liceo e quindi non so rispondere a domande troppo tecniche, né ho conoscenze approfondite al riguardo.
Sto programmando uno script per la gestione di eventi usando addEventListener per fare una calcolatrice in html, ma ogni volta che clicco su un qualunque pulsante il numero o segno collegato al pulsante su cui ho cliccato compare solo per un attimo, ma poi la pagina si refresha.
Ho provato a inserire return false; (anche ponendo false tra tonde e virgolette), ma il problema rimane sempre. Che posso fare?

PS: Purtroppo non so come postare il codice, visto che da regolamento detto di usare i tag BBCODE(?) ma né so cosa siano, né, tantomeno, ho letto di qualcosa per postare codici javascript, quindi se qualcuno potesse essermi d'aiuto anche in questo caso mi farebbe un grande favore.
 
Ciao,quando scrivi un messaggio sulla barra di formattazione nella sconda riga trovi 3 icone per formattare il codice (# <> php ), devi selezionare il codice e premere su una di quelle icone per racchiuderlo. Prova al massimo lo sistemo io.
 

Discussioni simili