sql >> Database >  >> RDS >> Mysql

Voeg Ja of Nee toe aan MySQL op basis van de waarde van het selectievakje

Het probleem met selectievakjes (zoals je hebt opgemerkt) is dat niet-aangevinkte vakjes geen gegevens indienen.

De standaard truc om dit te omzeilen is...

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

Wanneer het selectievakje is aangevinkt, wordt de waarde ervan ingediend zoals deze later in het document wordt weergegeven. Indien niet aangevinkt, wordt de verborgen invoerwaarde ingediend.

U kunt de waarde dan eenvoudig op naam controleren

$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

Voeg in uw specifieke geval de page_id . toe in de invoernaam, bijv.

<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

En in PHP

foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
    $dbFlag = $likeFlag ? 'Yes' : 'No';

    // update DB
}



  1. Hoe laad ik een lokaal .SQL-bestand in MySQL?

  2. SQL Server 2000 - Gekoppelde server

  3. JDBC PreparedStatement resulteert in MySQL-syntaxisfout

  4. Maak een nieuwe tabel door twee tabellen samen te voegen met union