[PHP]

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Ciao, ho un problema con una checkbox.

Ho inserito il codice HTML
HTML:
<input type="checkbox" id="checkbox" name="checkbox" value="1"/>

poi ho inserito il codice PHP
PHP:
if($checkbox = ($_POST['checkbox']) == '1')
            {
                $checkbox = "si";
            }
            else
            {
                $checkbox = "no";
            }
Il problema è che mi arriva sempre 'no' nella mail.

Vorrei che se la checkbox è spuntata arrivi 'si' altrimenti arrivi 'no'.
Qualcuno per favore potrebbe aiutarmi?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, a me funziona anche se la sintassi non è corretta : dovresti verificare prima con isset() se il POST è settato, non serve il value nelle checkbox, se non è spuntata il post non arriva puoi anche valorizzare la variabile in una sola riga
PHP:
$checkbox = isset($_POST['checkbox']) ? "si" : "no";
comunque se nella mail ti arriva no il problema è quando la invi gli passerai il dato sbagliato
 

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Ti ringrazio per avermi risposto. Ho inserito il tuo codice al posto del mio e tolto value="" dal tag input.
Adesso in qualsiasi caso mi arriva "si".

Il form viene gestito da una chiamata Ajax e qui ho inserito:
Codice:
checkbox: $("#checkbox").is(":checked")
potrebbe dipendere da questo l'errore?

Altrimenti cosa mi consigli di verificare?

Grazie.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
in quel caso dovrebbe arrivarti sempre il POST o true o false, meglio se controlli con la console del browser
puoi provare cosi
PHP:
$checkbox = $_POST['checkbox'] ? "si" : "no";
 

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Confermo. True e False mi arrivano correttamente...solo che al posto di true vorrei vedere si e al posto di false vorrei vedere no.

Purtroppo per adesso non ho risolto il problema. Continua ad arrivarmi "si" anche se la checkbox non è spuntata.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
probabilmente ti arrivano come stringhe prova ancora cosi
PHP:
$checkbox = $_POST['checkbox'] == "True" ? "si" : "no";
True scrivilo come lo vedi in console : se è in minuscolo scrivilo in minuscolo
 

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Come prima cosa, grazie per il tempo che mi stai dedicando. Adesso arriva sempre "no".

Codice:
<script type="text/javascript">
            $(function() {             
                       
                $('#myform').on('submit',function(e) {
                        e.preventDefault();
                   
                        $('#alert').show(); // mostra alert durante il caricamento   

                        var data = {
                        name: $("#name").val(),
                        surname: $("#surname").val(),
                        email: $("#email").val(),
                        phone: $("#phone").val(),
                        nationality: $("#nationality").val(),
                        rooms: $("#rooms").val(),
                        calendarstart: $("#calendarstart").val(),
                        calendarend: $("#calendarend").val(),
                        message: $("#message").val(),
                        checkbox: $("#checkbox").is(":checkbox")
                        };

                     $.ajax({
                        type: "POST",
                        url: "assets/contact_it.php",
                        data: data,
                         
                        //Inizio visualizzazione errori
                        success: function(msg){
                        $('#alert').hide();  // nascondi alert finito di caricare
                        $("#result").html(msg); // messaggio di avvenuto invio
                        },
                         
                        error: function()
                         
                        {alert("Si è verificato un errore, si prega di riprovare!"); // messaggio di errore
                        }
                         
                    });
                        return false;
                    });
                });

        </script>

PHP:
<?php
        // Check for empty fields
        if(empty($_POST['name'])           ||
           empty($_POST['surname'])      ||
           empty($_POST['email'])          ||
           empty($_POST['phone'])          ||
           empty($_POST['nationality'])  ||
           empty($_POST['rooms'])          ||
           empty($_POST['calendarstart'])||
           empty($_POST['calendarend'])  ||
           empty($_POST['message'])         ||
           !filter_var($_POST['email'],FILTER_SANITIZE_EMAIL,FILTER_VALIDATE_EMAIL))
        {
            echo "<div class='uk-alert uk-alert-danger' id='not-sent' data-uk-alert>
                    <a href='' class='uk-alert-close uk-close'></a>
                    <p>Per favore compila correttamente tutti i campi!</p>
                </div>";
        }

        else
        {
            $name = $_POST['name'];
            $surname = $_POST['surname'];
            $email = $_POST['email'];
            $phone = $_POST['phone'];
            $nationality = $_POST['nationality'];
            $rooms = $_POST['rooms'];
            $calendarstart = $_POST['calendarstart'];
            $calendarend = $_POST['calendarend'];
            $message = $_POST['message'];
            $checkbox = $_POST['checkbox'] == "True" ? "si" : "no"; 
                        
            // Create the email and send the message
            $to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to.
            $email_subject = "Ti ha scritto dal tuo sito:  $name";
            $email_body = "Hai ricevuto un nuovo messaggio dal tuo sito web!\n\n"."Questi sono i dettagli:\n\nNome: $name\n\nCognome: $surname\n\nEmail: $email\n\nTelefono: $phone\n\nNazionalità: $nationality\n\nCamera: $rooms\n\nData di partenza: $calendarstart\n\nData di arrivo: $calendarend\n\nMessaggio: $message\n\nAccettazione Privacy: $checkbox";
            $headers = "Da: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected].
            $headers .= "Reply-To: $email";   
            $invio_mail = mail($to,$email_subject,$email_body,$headers);

            echo "<div class='uk-alert uk-alert-success' id='sent'>
                    <a href='' class='uk-alert-close uk-close'></a>
                    <p>Messaggio inviato!</p>
                </div>";
     }
        ?>

Ti ho inserito tutto il codice nella speranza di aiutarti a risolvere il mio problema.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
true va scritto in minuscolo
PHP:
$checkbox = $_POST['checkbox'] == "true" ? "si" : "no";
e nell'ultimo codice che hai postato hai scritto
Codice:
checkbox: $("#checkbox").is(":checkbox")
invece che
Codice:
checkbox: $("#checkbox").is(":checked")
l'ho testato e funziona
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0

Discussioni simili