Hoe te lezen of een selectievakje wordt ingecheckt in PHP?

Hoe te lezen of een selectievakje wordt ingecheckt in PHP?


Antwoord 1, Autoriteit 100%

Als uw HTML-pagina eruit ziet:

<input type="checkbox" name="test" value="value1">

Na het indienen van het formulier kunt u het bekijken met:

isset($_POST['test'])

of

if ($_POST['test'] == 'value1') ...

Antwoord 2, Autoriteit 30%

Zend Framework Gebruik een mooie hack in selectievakjes, die u ook zelf kunt doen:

Elke gegenereerde selectievakje wordt geassocieerd met een verborgen veld met dezelfde naam, geplaatst vlak voor het selectievakje, en met een waarde van “0”. Als u dan uw selectievakje als de waarde “1” krijgt, krijgt u altijd de ‘0’ of ‘1’ waarde in de resulterende stap of post

<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1"> 

Antwoord 3, Autoriteit 15%

Bij het gebruik van selectievakjes als een array:

<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">

U moet in_array():

gebruiken

if(in_array('Orange', $_POST['food'])){
  echo 'Orange was checked!';
}

Vergeet niet om te controleren of de array eerst is ingesteld, zoals:

if(isset($_POST['food']) && in_array(...

Antwoord 4, Autoriteit 11%

Laat uw html voor uw selectievakje er zo uitzien

<input type="checkbox" name="check1">

Na het verzenden van je formulier moet je het als

. aanvinken

if (isset($_POST['check1'])) {
    // Checkbox is selected
} else {
   // Alternate code
}

Ervan uitgaande dat check1de naam van uw selectievakje moet zijn. En als uw formulierverzendmethode GETis, moet u controleren met $_GET-variabelen leuk vinden

if (isset($_GET['check1'])) {
   // Checkbox is selected
} 

Antwoord 5, autoriteit 6%

$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;

Antwoord 6, autoriteit 2%

Ik gebruik deze truc al een aantal jaren en het werkt perfect zonder enig probleem voor de status van aangevinkte/niet aangevinkte checkbox tijdens gebruik met PHP en Database.

HTML-code: (voor pagina toevoegen)

<input name="status" type="checkbox" value="1" checked>

Hint: verwijder “checkbox” als je het standaard niet aangevinkt wilt tonen

HTML-code: (voor pagina bewerken)

<input name="status" type="checkbox" value="1" 
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>

PHP-code: (gebruiken voor pagina’s toevoegen/bewerken)

$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}

TIP: er zal altijd lege waarde zijn, tenzij de gebruiker het heeft gecontroleerd. We hebben dus al PHP-code om het te vangen, houden de waarde op 0. DAN, gebruik dan eenvoudig de $ Status-variabele voor database.


Antwoord 7, Autoriteit 2%

Controleer of een selectievakje wordt gecontroleerd, gebruik leeg ()

Wanneer het formulier wordt ingediend, wordt het selectievak altijd ingesteld, omdat alle -paal variabelen met het formulier worden verzonden.

Controleer of het selectievakje wordt gecontroleerd met leeg als volgt:

//Check if checkbox is checked    
if(!empty($_POST['checkbox'])){
 #Checkbox selected code
} else {
 #Checkbox not selected code
}

Antwoord 8

U kunt de overeenkomstige waarde controleren als ingesteld en niet-leeg in de array van $ _post of $ _get, afhankelijk van de actie van uw formulier.

IE: met een berichtformulier met behulp van een nameVAN “TEST” (IE: <input type="checkbox" name="test">, YOU “D Gebruik:

if(isset($_POST['test']) {
   // The checkbox was enabled...
}

Antwoord 9

Meer informatie over issetdie een ingebouwde “functie” is die kan worden gebruikt in IF IF-verklaringen om te vertellen of een variabele is gebruikt of ingesteld

Voorbeeld:

   if(isset($_POST["testvariabel"]))
     {
       echo "testvariabel has been set!";
     }

Antwoord 10

Nou, de bovenstaande voorbeelden werken alleen wanneer u een waarde wilt invoegen, niet nuttig voor het bijwerken van verschillende waarden naar verschillende kolommen, dus hier is mijn kleine truc om bij te werken:


//EMPTY ALL VALUES TO 0 
$queryMU ='UPDATE '.$db->dbprefix().'settings SET menu_news = 0, menu_gallery = 0, menu_events = 0, menu_contact = 0';
            $stmtMU = $db->prepare($queryMU);
            $stmtMU->execute();
if(!empty($_POST['check_menus'])) {
    foreach($_POST['check_menus'] as $checkU) {
try {
//UPDATE only the values checked
    $queryMU ='UPDATE '.$db->dbprefix().'settings SET '.$checkU.'= 1';
            $stmtMU = $db->prepare($queryMU);
            $stmtMU->execute();  
        } catch(PDOException $e) {
          $msg = 'Error: ' . $e->getMessage();}
        }
}
<input type="checkbox" value="menu_news" name="check_menus[]" />
<input type="checkbox" value="menu_gallery" name="check_menus[]" />

….

Het geheim is om eerst alle WAARDEN bij te werken (in dit geval naar 0), en aangezien alleen de aangevinkte waarden worden verzonden, betekent dit dat alles wat je krijgt moet worden ingesteld op 1, dus alles wat je krijgt, zet het op 1.

Voorbeeld is PHP, maar geldt voor alles.

Veel plezier 🙂


Antwoord 11

Je kunt het doen met de korte als:

$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;

of met de nieuwe PHP7 Null coalescing operator

$check_value = $_POST['my_checkbox_name'] ?? 0;

Antwoord 12

$is_checked = isset($_POST['your_checkbox_name']) &&
              $_POST['your_checkbox_name'] == 'on';

Evaluatie met kortsluitingzorgt ervoor dat u dit niet doet toegang tot your_checkbox_namewanneer deze niet is ingediend.


Antwoord 13

Een minimalistische booleaanse controle met behoud van de schakelaarpositie

<?php
$checked = ($_POST['foo'] == ' checked');
?>
<input type="checkbox" name="foo" value=" checked"<?=$_POST['foo']?>>

Antwoord 14

<?php
  if (isset($_POST['add'])) {
    $nama      = $_POST['name'];
    $subscribe = isset($_POST['subscribe']) ? $_POST['subscribe'] : "Not Checked";
    echo "Name: {$nama} <br />";
    echo "Subscribe: {$subscribe}";
    echo "<hr />";   
  }
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST" >
  <input type="text" name="name" /> <br />
  <input type="checkbox" name="subscribe" value="news" /> News <br />
  <input type="submit" name="add" value="Save" />
</form>

Antwoord 15

<form>
<input type="check" id=chk1 value="1">
<input type="check" id=chk2 value="1">
<input type="check" id=chk3 value="1">
</form>

wanneer u chk2 aanvinkt, ziet u waarden als:

<?php
foreach($_POST as $key=>$value)
{
    if(isset($key))
        $$key=strip_tags($value);
}
insert into table (chk1,chk2,chk3) values ('','1','');
?>

Antwoord 16

in BS3 kun je

 <?php
                  $checked="hola";
                  $exenta = $datosOrdenCompra[0]['exenta'];
                  var_dump($datosOrdenCompra[0]['exenta']);
                  if(isset($datosOrdenCompra[0]['exenta']) and $datosOrdenCompra[0]['exenta'] == 1){
                      $checked="on";
                  }else{
                    $checked="off";
                  }
              ?>
              <input type="checkbox" id="exenta" name="exenta" <?php echo $checked;?> > <span class="label-text"> Exenta</span>

Let op Het gebruik van isset($datosOrdenCompra[0]['exenta'])


Antwoord 17

filter_input (ingang_post, ‘selectievakje’, filter_default, filter_force_array)


Antwoord 18

WordPress heeft de checked()functie.
Referentie: https://developer.wordpress.org/reference/functions/Checked/

checked( mixed $checked, mixed $current = true, bool $echo = true )

Beschrijving
Vergelijkt de eerste twee argumenten en indien identieke merken zoals gecontroleerd

Parameters
$ gecontroleerd
(gemengd) (verplicht) een van de waarden om te vergelijken

$ stroom
(gemengd) (optioneel) (true) de andere waarde om te vergelijken, zo niet alleen waar
Standaardwaarde: TRUE

$ echo
(BOOL) (optioneel) Of u op echo wilt of gewoon de string retourneert
Standaardwaarde: TRUE

Return #Return
(string) HTML-kenmerk of lege string


Antwoord 19

U moet naam geven aan uw invoer.
Welk vak wordt geklikt, ontvangt u ‘AAN’ in uw keuze-methode

Array
(
    [shch] => on
    [foch] => on
    [ins_id] => #
    [ins_start] => شروع گفتگو
    [ins_time] => ما معمولاً در چند دقیقه پاسخ میدهیم
    [ins_sound] => https://.../media/sounds/ding-sound-effect_2.mp3
    [ins_message] => سلام % به کمک نیاز دارید؟
    [clickgen] => 
)

ik heb twee selectievakjes in mijn formuliernaam met ‘shch’ en ‘foch’


Antwoord 20

<?php
if(isset($_POST['nameCheckbox'])){
    $_SESSION['fr_nameCheckbox'] = true;
}
?>
<input type="checkbox" name="nameCheckbox" 
<?php 
if(isset($_SESSION['fr_nameCheckbox'])){
    echo 'checked'; 
    unset($_SESSION['fr_nameCheckbox']);
} 
?>

Other episodes