Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    header Location salta messaggio javascript

    altro giro altro regalo, ma se sistemo questo dettaglio per un po' smetto di rompere

    in bacheca.php ho una serie di "notizie" generate da uno script PHP che va a prendere i testi da dei file presenti nella cartella news
    ho inoltre un collegamento al .php con l'editor per l'inserimento e un ulteriore pezzo di codice che permette di cancellare le notizie (e quindi i files) che non servono più attraverso una semplice form con casella per inserire il nome file e pulsante per trasmetterlo come variabile alla
    parte di script che dovrà processarlo

    ho bisogno che l'operazione di cancellazione sia preceduta da un messaggio "sei sicuro?" e seguita da un messaggio "ok cancellato" - e lo sto ottenendo con con msgBox javascript

    IL PROBLEMA se il file esiste e viene correttamente cancellato, continuo a vederne il testo fino a che non esco dalla pagina e ci rientro (cosa che non va bene) - non posso aggiornare la pagina con F5 perchè cerca di rielaborare la richiesta di cancellazione.
    Provo con
    header('Location:bacheca.php')
    ma così mi si aggiorna correttamente il foglio ma non vedo più apparire i messaggi "sei sicuro" e "ok fatto"...

    Come posso fare? Dove sbaglio? Magari è solo una questione di posizionare correttamente la riga con header...

    ecco il codice
    Codice PHP:
    <?php
    //se non ho premuto elimina vedo la form per eliminare
    if (!isset($_POST['elimina'])) {
    ?>
                  <form action="bacheca.php" method="post">
                  <input type="text" name="cancellami" size="50" />
                  <input type="submit" name="elimina" value="Elimina File" />
                  </form>


      
      <?php
      
    // altrimenti assegno il dato nome file alla variabile e aggiungo il percorso 
      
    } else {
        
    $cancF = isset($_POST['cancellami']) ? $_POST['cancellami'] : 0
        
    $cancFile "news/".$cancF;
        
          
    //verifico che sia ok e avviso che si sta per cancellare quel file
          
    if (isset($cancFile)){
            
    $msg1 "Stai per cancellare il file $cancFile vuoi procedere?";    
      
    ?>
            <script language="Javascript">
            alert('<?php echo $msg1 ?>');
            </script>
            
            <?php
            
    //verifico che il file esista e se non c'è trono alla form
            
    if (!file_exists($cancFile)) {
                  
    $msg2 "Non riesco a trovare il file $cancFile Sicura di aver scritto il nome giusto? Controlla e Riprova!";
                  
    $_POST = array();
            
    ?>
                  <script language="Javascript">
                  alert('<?php echo $msg2 ?>');
                  </script>
                  
                  <form action="bacheca.php" method="post">
                  <input type="text" name="cancellami" size="50" />
                  <input type="submit" name="elimina" value="Elimina File" />
                  </form>


              
                  <?php
                        
    //verifico che non ci siano impedimenti
                      
    } else {
                            if (!
    unlink($cancFile)) {
                            echo 
    "Errore, impossibile cancellare il file $nomeFile";
                      
    //cancello il file e avviso che ho cancellato
                      
    } else {
                            
    $msg3 "Il file $cancFile è stato cancellato";
                            
    $_POST = array();
                    
    ?>
                            <script language="Javascript">
                            alert('<?php echo $msg3 ?>');
                            </script>
                            
                            <form action="bacheca.php" method="post">
                            <input type="text" name="cancellami" size="50" />
                            <input type="submit" name="elimina" value="Elimina File" />
                            </form>    
     

    <?php
                
    }
              }
        }
      }
      
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    579
    php viene eseguito prima di javascript , infatti il browser non riceve l'alert in javascript , ma bensi l'header , quindi non vedrai mai utilizzando questo metodo il messaggio "sei sicuro?".

    Quello che ti consiglio io e di aggiornare tutta la pagina con javascript del tipo:

    codice:
    <input type="submit" onClick="return confirm('Sei sicuro?');">
    ciao
    l'uomo è tutto ciò che non può essere

    http://www.ebug.it Discussioni da web Designer

    http://www.ebug.it/?p=354 e Dart Fener dove lo mettiamo lol

  3. #3
    ok... ma il messaggio "ok è stato cancellato" ...e gli eventuali "stai cercando di cancellare un file che non esiste" come li faccio apparire

    Nota che PHP non lo conosco benissimo ma mi ci arrangio mentre di Javascript non so assolutamente nulla!

    e se inserissi questo pezzo
    codice:
                            <script language="Javascript">
                            alert('<?php echo $msg3 ?>');
                            </script>
                            
                            <form action="bacheca.php" method="post">
                            <input type="text" name="cancellami" size="50" />
                            <input type="submit" name="elimina" value="Elimina File" />
                            </form>
    in php usando la forma >>>EOT codice codice EOT;
    potrebbe funzionare o è solo una diversa forma di scrittura per cui comunque mi processerebbe l'header prima?

    Grazie

  4. #4
    per completezza di informazione:

    il codice come scritto ora mi restituisce tutti i vari messaggi (compreso il "sei prporpio sicuro") quando il nome file che inserisco è sbagliato
    mentre li ignora quando il nome è esatto....

    è questo che mi fa pensare che possa in qualche modo trattarsi di un errato posizionamento della riga con header che al momento è qui:

    Codice PHP:
                      //cancello il file e avviso che ho cancellato
                      } else {
                            $msg3 = "Il file $cancFile è stato cancellato";
                            $_POST = array();
                    ?>
                            <script language="Javascript">
                            alert('<?php echo $msg3 ?>');
                            </script>
                            
                            <form action="bacheca.php" method="post">
                            <input type="text" name="cancellami" size="50" />
                            <input type="submit" name="elimina" value="Elimina File" />
                            </form>    
     

    <?php
    header
    ('Location: bacheca.php');

                }
              }
        }
      }
      
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    579
    ti ripeto dovunque metti quell'header , non vedrai mai il messaggio di javascript, perchè l'elaborazione di php , avviene prima di javascript.

    ok... ma il messaggio "ok è stato cancellato" ...e gli eventuali "stai cercando di cancellare un file che non esiste" come li faccio apparire
    con un semplice alert:

    codice:
    <script language='javascript'>
    alert("messaggino");
    </script>
    l'uomo è tutto ciò che non può essere

    http://www.ebug.it Discussioni da web Designer

    http://www.ebug.it/?p=354 e Dart Fener dove lo mettiamo lol

  6. #6
    Scusa StarFinger ...ma questo c'è già nel mio codice!

    ci sono ben 4 messaggi impostati così con il codice
    codice:
    <script language='javascript'>
    alert("messaggino");
    </script>
    e funzionano

    il punto è che se imposto la riga con l'header vanno se il nome file è sbagliato mentre non vanno se il noe file è giusto !!! è questo che mi manda fuori! perchè con i primi sì e con i secondi no?!

    ho anche al volo provato la soluzione che suggerisci
    codice:
    <input type="submit" onClick="return confirm('Sei sicuro?');">
    e anche questa nel momento in cui c'è l'header dove è ora non funziona!

    In compenso provando a spostare l'header di una riga, quindi dopo la graffa che chiude l'ultimo else riesco ad ottenere ciò che mi serve, con un solo particolare da sistemare:
    il messaggio deve mostrare anche il nome del file!

    posso mettere nel messaggio di onClick una variabile?! e se si come?
    tipo
    codice:
    <input type="submit" onClick="return confirm('Sei sicuro di voler cancellare $File ?');">

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    579
    Codice PHP:
    <input type="submit" onClick="return confirm('Sei sicuro di voler cancellare <? echo $File ?>');">
    così si
    l'uomo è tutto ciò che non può essere

    http://www.ebug.it Discussioni da web Designer

    http://www.ebug.it/?p=354 e Dart Fener dove lo mettiamo lol

  8. #8
    provato...

    e poi ho realizzato che la variabile viene settata dopo!!!

    nel form non ho una $cancF! quindi giustamente non funziona!

    dovrei assegnare all'interno della stringa il valore di 'cancellami' che è il nome file appena inserito...
    uffa!!!

    ecco il form
    codice:
                  <form action="bacheca.php" method="post">
                  <input type="text" name="cancellami" size="50" />
                  <input type="submit" name="elimina" value="Elimina File" 
    onClick="return confirm('Stai per cancellare il file <?php echo $cancF ?> vuoi continuare?');"/>
                  </form>

  9. #9
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Non ho avuto modo/tempo di visionare tutti gli stadi del tuo sudato lavoro, ma per quest' ultimo farei così:
    codice:
    <script language="Javascript">
    
     function send(){
      var answer = confirm('Stai per cancellare il file   ' + 
                            document.forms["main"].elements["cancellami"].value + 
                           '\n\nvuoi continuare?');
      alert(answer);
      if(answer==true){document.forms["main"].submit();};
     }
    
    </script> 
    
    <form name="main" action="bacheca.php" method="post">
                  <input type="text" name="cancellami" size="50" />
                  <input type="button" name="elimina" value="Elimina File" onClick="send();"/>
    </form>
    L' invio (il submit) del FORM viene ora demandato a JavaScript con la funzione nativa submit() che è supportata apposta per fare le veci dell' INPUT TYPE="Submit" che muto quindi in un generico TYPE="Button" altrimenti l' azione non potrebbe più venir intercettata da JS (l' invio avverrebbe comunque).

    Raccolgo il tutto, anche il confirm() in una function che ho chiamato send() (è una di quelle cose che JavaScript ti lascerebbe anche chiamare Arturo() )
    L' alert() è a scopo dimostrativo, ti mostra cosa ritorna il confirm() (true o false) e su questo si basa l' if-statement successivo.


    Anche se siamo andati a parare altrove:
    Originariamente inviato da webnadia
    codice:
                  <input type="submit" name="elimina" value="Elimina File" 
    onClick="return confirm('Stai per cancellare il file <?php echo $cancF ?> vuoi continuare?');"/>
    vorrebbe il semicolon di fine-ragionamento <?php echo $cancF; ?>
    che si usa anche in JavaScript, ma che a riguardo è meno intransigente.

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da Enzaccio
    Non ho avuto modo/tempo di visionare tutti gli stadi del tuo sudato lavoro, ma per quest' ultimo farei così:
    codice:
    <script language="Javascript">
    
     function send(){
      var answer = confirm('Stai per cancellare il file   ' + 
                            document.forms["main"].elements["cancellami"].value + 
                           '\n\nvuoi continuare?');
      alert(answer);
      if(answer==true){document.forms["main"].submit();};
     }
    
    </script> 
    
    <form name="main" action="bacheca.php" method="post">
                  <input type="text" name="cancellami" size="50" />
                  <input type="button" name="elimina" value="Elimina File" onClick="send();"/>
    </form>
    L' invio (il submit) del FORM viene ora demandato a JavaScript con la funzione nativa submit() che è supportata apposta per fare le veci dell' INPUT TYPE="Submit" che muto quindi in un generico TYPE="Button" altrimenti l' azione non potrebbe più venir intercettata da JS (l' invio avverrebbe comunque).

    Raccolgo il tutto, anche il confirm() in una function che ho chiamato send() (è una di quelle cose che JavaScript ti lascerebbe anche chiamare Arturo() )
    L' alert() è a scopo dimostrativo, ti mostra cosa ritorna il confirm() (true o false) e su questo si basa l' if-statement successivo.


    Anche se siamo andati a parare altrove:

    vorrebbe il semicolon di fine-ragionamento <?php echo $cancF; ?>
    che si usa anche in JavaScript, ma che a riguardo è meno intransigente.
    attenzione enzaccio, la tua soluzione non funzionerebbe, in quanto se fai il submit di un form tramite javascript, il submit effettivamente NON viene preso in considerazione e quindi i controlli php (if isset($_POST['elimina']) ) darebbe esito negativo
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.