Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    23

    problema con condizione IF

    Salve,
    da un form invio dei dati via email.
    L'invio funziona perfettamente però vorrei far visualizzare nell'email un testo diverso in base alla quantità selezionata.

    Es.:

    codice:
    / Recupero i valori inseriti nel form
    $nome = $_POST['name'];
    $quantity = $_POST['quantity'];
    $colore1 = $_POST['colore1'];
    $colore2 = $_POST['colore2'];
    $colore3 = $_POST['colore3'];
    
    
    // verifico che tutti i campi siano stati compilati
    if (!$nome || !$quantity || !$colore1 || !$colore2 || !$colore3) {
      echo 'Tutti i campi del modulo sono obbligatori!';    
    }
    // verifico che il nome non contenga caratteri nocivi
    elseif (!preg_match('/^[A-Za-z \'-]+$/i',$nome)) {
      echo 'Il nome contiene caratteri non ammessi';    
    }else{
     
    // compilo un messaggio combinando i dati recuperati dal form
    $testo = "Nome: " . $nome . "\n"
                 . "Q.tà: " . $quantity . "\n"
            . "Colore 1: " . $colore1 . "\n"
            . "Colore 2: " . $colore2 . "\n"
            . "Colore 3: " . $colore3 . "\n"
            . "Note: " . $notes ;
    Vorrei inserire in questa riga
    codice:
    . "Q.tà: " . $quantity . "\n"
    una condizione
    esempio:
    se la quantità è 1 visualizzare nell'email "1 monitor"
    se la quantità è 2 visualizzare nell'email "2 monitor"

    Ho provato così:
    codice:
    if($quantity =="1"){  echo "1 monitor"; 
    }

    però nell'email non visualizzo il testo ma solo "1".

    come posso fare?

    Grazie
    Ultima modifica di Artack; 29-04-2019 a 16:46

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Qualcosa non quadra, se nell'echo metti "1 monitor" non può scrivre solo "1" e "monitor" sparisce.

    Posta il codice che usi e che ti da problemi, magari l'errore sta da un'altra parte.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    23
    1 è il valore che passo dal form.

    Il codice che recupera i dati inviati dal form e invia l'email è questo
    codice:
    // Recupero i valori inseriti nel form$nome = $_POST['name'];
    $quantity = $_POST['quantity'];
    $colore1 = $_POST['colore1'];
    $colore2 = $_POST['colore2'];
    $colore3 = $_POST['colore3'];
    
    
    // verifico che tutti i campi siano stati compilati
    if (!$nome || !$quantity || !$colore1 || !$colore2 || !$colore3) {
      echo 'Tutti i campi del modulo sono obbligatori!';    
    }
    // verifico che il nome non contenga caratteri nocivi
    elseif (!preg_match('/^[A-Za-z \'-]+$/i',$nome)) {
      echo 'Il nome contiene caratteri non ammessi';    
    }else{
     
    // compilo un messaggio combinando i dati recuperati dal form
    $testo = "Nome: " . $nome . "\n"
           	        . "Q.tà / Prodotto: " . $quantity . "\n"
    		. "Colore 1: " . $colore1 . "\n"
    		. "Colore 2: " . $colore2 . "\n"
    		. "Colore 3: " . $colore3 . "\n"
    		. "Note: " . $notes ;
    	
    // uso la funzione mail di PHP per inviare questi dati al mio indirizzo di posta
    mail('ordinemonitor@gmail.com', 'Ordine Monitor', $testo);
    
    
    // Mostro un messaggio di conferma all'utente
    print "<body>
    <table align='center' bordercolor='#d6e9c6'>
      <tr>
        <td style='background-color:#dff0d8; color=#3c763d; font-weight: 500; '>
    <div align='center'><font face='Verdana, Arial, Helvetica, sans-serif'>
    Grazie, abbiamo ricevuto la sua richiesta. La contatteremo telefonicamente nei prossimi 2 giorni lavorativi per confermare l'ordine!</font></div></td>
    
    
    </tr>
    </table>
    </body>";
    }

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    E questo è il codice che ti funziona, quindi è poco utile per dirti cosa non va.
    Devi postare il codice modificato che NON fa quello che vorresti, in modo da poterti dire cosa sbagli.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    23
    la condizione che ho utilizzato è questa
    codice:
    if ($quantity == '1') {
        echo "1 monitor";
    }elseif ($quantity == '2')
        echo "2 monitor";
    }
    però non riesco a visualizzare il testo nel corpo dell'email.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Nel corpo dell'email ci metti la variabile $testo, se anche qui fai come nel codice postato in precedenza, quindi non devi fare l'echo, ma concatenare la stringa alla variabile $testo.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.