Beste Forumleden,

Is er een manier om twee buttons toe te voegen die direct een submit hebben met bv Button Ja of Button Nee

Deze wil ik dan bij drukken gelijk de waarde laten opslaan in een tabel.
Dit lukt me bijvoorbeeld wel met een Radio button maar dan moet je eerst die selecteren en dan nogmaals op update/submit button drukken.






Hoop dat me vraag een beetje duidelijk is.
Maak twee forms?
Of schrijf een JavaScript snippet die een onzichtbaar veld een waarde meegeeft op grond van de button waar je op klikt?

Of -wellicht nog het beste- je Googled twee tellen. Je kunt submit-buttons gewoon values meegeven.
Bedankt voor de links,

Maar kunnen jullie toch een klein script plaatsen die ik kan aanpassen naar de juiste database?

$query_1 = "SELECT * FROM tbl_posts WHERE form_id = '".$_POST['form_id']."' ORDER BY form_id";
$result_1 = mysqli_query($connect, $query_1);
$data_1 = mysqli_fetch_assoc($result_1);

<form action="buy.php" method="post">
<input id='submit' type='submit' name = 'Accepteren' value = 'Accepteren'>
<input id='submit' type='submit' name = 'Afwijzen' value = 'Afwijzen'>
</form>
Je moet een UPDATE-query maken.
Denk ook om veiligheid tegen SQL-injection.
Hoe moet ik dat dan doen?
Kun je een voorbeeld script laten zien?
Als je de buttons nu beide de naam "status" geeft, en de waarde direct een toegestane waarde in de database-kolom laat zijn hoef je ook niets te vertalen - je hoeft dan enkel te controleren of het een toegestane waarde betreft in de validatie stap, dus concreet:
<button type="submit" name="status" value="Geaccepteerd">Accepteren</button>
<button type="submit" name="status" value="Afgewezen">Afwijzen</button>

Dat lijkt mij een stuk simpeler en consistenter.
Wat Thomas zegt klopt. Als aanvulling: je kunt als waarde beter een boolean gebruiken (een 0 of een 1). Een 0 komt overeen met 'nee' en een 1 met 'ja'. Dat bespaart ruimte in de database. Het veld in de database-tabel stel je dan in op TINYINT.

Formulier:


<button type="submit" name="status" value="1">Accepteren</button>
<button type="submit" name="status" value="0">Afwijzen</button> 


Controle op server:

<?php

if (isset($_POST['status']) && ($_POST['status'] === '0' || $_POST['status'] === '1')) {

// Voer update-query uit.

} else {

// Er klopt iets niet. Ga terug naar het formulier.

}
?>
@Ozzie, dat was ook mijn eerste ingeving maar als je de tweede screenshot in de oorspronkelijke vraagstelling bekijkt dan zitten hier meer dan twee statussen in. Desalniettemin zou je aan statussen een nummer kunnen toekennen. Een BOOL kolom in een MySQL-database is overigens niets anders dan een alias voor TINYINT(1).

EDIT: En dan is daar ook nog de naamgeving. Als het daadwerkelijk een ja/nee veld was voor de acceptatie-status dan zou de kolom zelf eigenlijk niet "status" maar "geaccepteerd" o.i.d. moeten heten, dit impliceert ook min of meer een ja/nee waarde (dit doe je bij voorkeur ook met PHP-variabelen die enkel Boolse waarden kunnen hebben).

In dit geval betreft het inderdaad een echte status (en niet zozeer een aan/uit stand) die verschillende toestanden (meer dan 2 :)) kan hebben.

Reageren