Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Comparare due variabili con switch/if

    Salve, ho un form dove ricevo dei dati tra qui delle checkbox. Ora ho dovuto fare una piccola modifica aggiungendo un nuovo check, ho pensato di gestire il tutto lato php senza andare a modificare anche il db (mysql). Quindi io avrei la necessità di fare una cosa del genere:
    Codice PHP:
    $Variabile_1 $_POST['check1'];

    $Variabile_2 $_POST['check2'];

    if (
    $Variabile_1 == '1' || Variabile_2 == '1') {

        
    $es1 '1';    
        
    $es2 '1';

    }elseif (
    $Variabile_1 == '1' || Variabile_2 == '0'){

        
    $es1 '1';    
        
    $es2 '0';

    }elseif (
    $Variabile_1 == '0' || Variabile_2 == '1'){

        
    $es1 '0';    
        
    $es2 '1';
    }


    $risultato$es1 $es2;

    echo 
    $risultato
    Ma non funziona, volevo utilizzare lo switch ma non so come applicare alle due condizioni...Potete aiutarmi?

    Grazie
    Ultima modifica di sixdas; 01-03-2016 a 22:31

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Che vuol dire "non funziona"?
    Ti da errore? Non fa quello che ti aspetti?
    Cosa dovrebbe succedere secondo ciò che hai in mente? Che cosa dovrebbe fare questo codice secondo te?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    non mi dà nessun errore, però non fa quello che volevo io. A me serve sapere quale check è stato selezionato. Se vengo selezionati entrambi devo salvare 2 nel db facendo la somma di entrambi, mentre se viene selezionato solo il primo deve salavare 1, mentre se viene salvato solo il 2 deve salvare 2.

    Spero di aver reso l'idea

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    E per quale astruso motivo questo
    Codice PHP:
    elseif ($Variabile_1 == '0' || Variabile_2 == '1') {

        
    $es1 '0';    
        
    $es2 '1';
    }

    $risultato$es1 $es2
    dovrebbe fare 2?
    Senza contare che a tutti i Variabile_2 ci manca il $ davanti, quindi non so come potesse non darti errore.

    Il controllo si può fare anche solo su $_POST['check2'] visti i casi che hai elencato.
    Codice PHP:
    if ( $_POST['check2'] == '1' )
    {
        
    $risultato 2;
    }
    elseif (
    $_POST['check2'] == '0')
    {
        
    $risultato 1;
    }

    echo 
    $risultato
    Anche se probabilmente non funzionerà neanche così, ma dipende da come è fatto il form.
    Se secondo te il checkbox non selezionato invia 0, allora ti sbagli, i dati dei checkbox non selezionati non vengono inviati.
    Ultima modifica di Alhazred; 02-03-2016 a 01:13

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, il codice scritto sopra era solo di esempio per il forum, per rendere l'idea. Il problema gira intorno al fatto che mi era sfuggito, che quando non selezioni una checbox non ricevi nulla...

    Il mio fine e quello di salvare nel db 1 se viene selezionato solo il check1, 2 se viene selezionato sia check1 e check2 (per questo faccio la somma alla fine di risultato) o solo check2.

    Come potrei fare?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non fare esempi semplificati, spiega di preciso quello che vuoi fare, altrimenti come risposta avrai la soluzione di quello che non è il tuo problema.

    Dicamo che hai 3 checkbox di nome "checkbox1", "checkbox2" e "checkbox3", tu vuoi sapere quanti sono selezionati? Indipendentemente da quali siano selezionati?
    Per esempio, se sono selezionati checkbox1 e checkbox2, oppure checkbox1 e checkbox3, tu comunque devi avere 2?

    Se fosse così potresti fare
    Codice PHP:
    $count 0;

    if ( isset(
    $_POST['checkbox1']) ) { $count++; }
    if ( isset(
    $_POST['checkbox2']) ) { $count++; }
    if ( isset(
    $_POST['checkbox3']) ) { $count++; }

    echo 
    $count

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, si la prossima volta sarò più chiaro nel esporre la domanda nel frattempo ho risolto in questo modo, non so se sia il modo migliore, ma per il momento funziona come dovrebbe.

    Codice PHP:
    if ($chek_1 == '1' and $chek_2 == '1' ){
      
        
    $es1 '1';    
        
    $es2 '1';

    }elseif (
    $chek_1 == '1' and $chek_2 == '' ){

        
    $es1 '1';    
        
    $es2 '0';

    }elseif (
    $chek_1 == '' and $chek_2 == '1' ){

        
    $es1 '0';    
        
    $es2 '2';


    Grazie per l'aiuto la diritta sul checkbox 'nullo' quando mi è stata utile.


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.