Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Errore di esecuzione elseif

    Ho un codice che contene diversi elseif. Funzionano tutti tranne uno, quello della modifica.
    In una pagina ho 2 <form> che mandano tutti alla stessa pagina:
    uno ha come hydden value='elimina'
    l'altro ha come hydden ='modifica'
    Quando clicco elimina, mi viene eseguito in modo corretto. Se invece clicco modifica, invece di mostrarmi la scritta (che ho lasciato come esempio) mi esegue sempre la parte 'elimina_final'.
    il codice è questo:
    Codice PHP:
    if (isset($action)) {
        
        if (
    $action == "inserisci") {
          if (
    $titolo!="" && $cat!="" && $loc!="" && $cod!="" && $prezzo!="" && $descrizione!="") {
                   
    $sql 'INSERT INTO '$prefix .'locazione_turistica (titolo, categoria, localita, 
                codice, prezzo, descrizione, data) VALUES (\''
    .$titolo.'\',\''.$cat.'\',\''.$loc.'\',\''.$cod.'\',\''.$prezzo.'\',\''.$descrizione.'\', NOW())';         
                
    $query mysql_query($sql,$conn);
                  if (
    $query==1) { 
                    echo 
    "Locazione [b]$titolo[/b] inserita in modo corretto.
    "
    ;                                    
                  } else {    
                    echo 
    "Si è verificato un <span class=\"error\">errore</span>. Riprova.";
                  }        
            } else {
              echo 
    "<span class=\"error\">Errore :</span> tutti i [b]Campi[/b] sono obbligatori.";        
            }
            echo 
    "

    "
    ;    
        }
    //chiude if "inserisci"
        
        
    elseif($_POST['action'] and $_POST['action'] == 'elimina' ) {
            echo 
    "Sei sicuro di voler <span class=\"error\">eliminare</span> la località avente codice [b]$codice[/b]?

            <span class=\"error\">Attenzione</span> eliminare prima eventuali [b]Immagini[/b] o [b]Video[/b]?

    "
    ;
             
             
    $sql "SELECT * FROM "$prefix ."locazione_turistica WHERE id_ltur = $id";            
             
    $elimina mysql_query($sql,$conn);
                      
             echo 
    "<table border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n
             <tr>\n<td>     
             <form name=\"formulario0\" id=\"formulario0\" method=\"post\" action=\""
    .$_SERVER['PHP_SELF']."\">
             <input type=\"submit\" name=\"Submit\" value=\"SI\" />
             <input type=\"hidden\" name=\"id\" value=\"
    $id\" />
             <input type=\"hidden\" name=\"action\" value=\"elimina_final\" />
             </form>\n"
    ;
                      echo 
    "</td><td>
             <form name=\"formulario1\" id=\"formulario1\" method=\"post\" action=\""
    .$_SERVER['PHP_SELF']."\">
             <input type=\"hidden\" name=\"ver\" value=\"verifica\" />      
            <input type=\"submit\" name=\"Submit\" value=\"NO\" />
            </form>\n
            </td></tr>\n</table>"
    ;
        
        } elseif (isset(
    $action) == "elimina_final" && $id!="" ) {
            
              
    $sql "DELETE from "$prefix ."locazione_turistica where id_ltur = $id";
            
    $elimina_ok mysql_query($sql,$conn);
            if (
    $elimina_ok==1) { 
                echo 
    "Locazione [b]eliminata[/b] in modo corretto.

    "
    ;                                        
            } else {    
                echo 
    "C'è un <span class=\"error\">errore</span> mentre elimino la Locazione.

    "
    ;
            }    
            
        } elseif(
    $_POST['action'] and $_POST['action'] == 'modifica') {
        echo 
    "metto la modifica";
        
        } 
    //chiudo gli elseif

    Grazie

  2. #2
    Non si scrive:
    codice:
        elseif($_POST['action'] and $_POST['action'] == 'elimina' ) {
    ma:
    codice:
        elseif($_POST['action'] && $_POST['action'] == 'elimina' ) {

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    perchè non usi switch al posto degli elseif? è molto + leggibile, e puoi gestire un caso di default.

    ciao

  4. #4
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    no si può invece.
    ci sono degli errori di sintassi, strano non te li riporti:

    elseif($_POST['action'] and $_POST['action'] == 'elimina' ) {

    questo che hai scritto elseif($_POST['action'] verifica che il valore di $_POST['action'] sia TRUE, qui invece ti serve in questo modo:

    elseif((isset($_POST['action'])) and ($_POST['action'] == 'elimina')) {

    poi:

    } elseif (isset($action) == "elimina_final" && $id!="" ) {

    errore anche qui. Va corretto in questo modo:

    }elseif((isset($_POST['action'])) and ($_POSTè'action'] == "elimina_final") && ($id != "")) {

    quindi come ti ho mostrato, correggi anche l'ultimo elseif.


  5. #5
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ok vi ringrazio tutti!
    Ma dato che ci sono due differenti post, a parte a correggere totalmente la forma in cui sono scritti, devo usare and o &&?

    Per gianaz , cosa intendi per switch?

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    questo

    E' solo una questione di preferenze e ordine, io uso l'if solo se ho un vero o falso, se ho + possibilità uso switch.

    ciao

  7. #7
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    puoi usare && come and non cambia nulla.

    poi per gli switch: http://freephp.html.it/guide/lezione.asp?id=190

    sta verso il centro della lezione.



    PS: è vero: è meglio con gli switch. Studiateli bene .

  8. #8
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    lento a scrivere ;_;

  9. #9
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ancora grazie a tutti
    Perfetto come mi avete detto funzia e riconosce anche modifica.
    Posso chiedervi di indicarmi se sono errori anche:
    Allora queste erano anche le due prime righe di codice postato
    Codice PHP:
    if (isset($action)) { 
         
        if (
    $action == "inserisci") { 
          if (
    $titolo!="" && $cat!="" && $loc!="" && $cod!="" && $prezzo!="" && $descrizione!="") { 
    Le posso lasciare cosi o devo cambiarle con il metodo indicato da voi?

    Poi ho questa, che nel caso riconosca che il valore è anche uguale ad 'elimina' non mi mostra ciò che c'è dopo.
    Codice PHP:
    if (!isset($action) || ($action!="elimina")) { 
    Che mi dite?

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    può andare bene se soddisfa il tuo bisogno..ok!

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.