Button een waarde geven
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.
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.
Gewijzigd op 27/12/2018 19:53:21 door Wouter Horst
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.
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.
Met een button:
https://www.w3schools.com/tags/tag_button.asp
https://www.w3schools.com/tags/tag_button.asp
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>
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.
Denk ook om veiligheid tegen SQL-injection.
Hoe moet ik dat dan doen?
Kun je een voorbeeld script laten zien?
Kun je een voorbeeld script laten zien?
https://www.w3schools.com/php/php_mysql_update.asp
Is het anders niet handig je eerst even in MySQLi te verdiepen?
Is het anders niet handig je eerst even in MySQLi te verdiepen?
Gewijzigd op 27/12/2018 21:17:52 door - Ariën -
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:
Dat lijkt mij een stuk simpeler en consistenter.
Code (php)
1
2
2
<button type="submit" name="status" value="Geaccepteerd">Accepteren</button>
<button type="submit" name="status" value="Afgewezen">Afwijzen</button>
<button type="submit" name="status" value="Afgewezen">Afwijzen</button>
Dat lijkt mij een stuk simpeler en consistenter.
Gewijzigd op 27/12/2018 22:08:15 door Thomas van den Heuvel
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:
Controle op server:
Formulier:
Code (php)
1
2
2
<button type="submit" name="status" value="1">Accepteren</button>
<button type="submit" name="status" value="0">Afwijzen</button>
<button type="submit" name="status" value="0">Afwijzen</button>
Controle op server:
Code (php)
Gewijzigd op 28/12/2018 12:24:31 door Ozzie PHP
@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.
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.
Gewijzigd op 28/12/2018 16:07:22 door Thomas van den Heuvel
@Thomas,
Het komt er in ieder geval op neer dat je er geen woorden/strings wil zetten, maar getallen. En volgens mij zijn we het daar geheel over eens ;-)
Het komt er in ieder geval op neer dat je er geen woorden/strings wil zetten, maar getallen. En volgens mij zijn we het daar geheel over eens ;-)
Meh, hangt er vanaf in hoeverre je je database wilt normaliseren. Je zou ook een index op een tekstuele kolom kunnen zetten (of enkel nummers kunnen gebruiken die verder niet refereren aan een aparte status-tabel). Dat eerste zou dan weer de leesbaarheid van een query kunnen verbeteren. Alles is een tradeoff. In het tweede geval zou je de nummers kunnen hard coden in een configuratie array. Tis ook maar net hoever je iets wilt uitbouwen en hoe netjes alles moet zijn - dit kost ook tijd om te maken.
Alles kost tijd om te maken, maar ik denk dat als je een status in string-vorm gaat opslaan je niet echt handig bezig bent. Gewoon getalletjes en in je php code maak je ervan wat je wilt. Zoiets opslaan als string kost belachelijk veel onnodige ruimte.
Beste Forumleden,
Bedankt voor het meedenken. Maar kan er ook iemand even een script maken die verbinding maakt met database en dan de kolom status aanpast door middel van buttons?
Met al die losse stukjes kom ik er echt niet uit ;(
het mag of 1,2,3 etc zijn per status of gewoon de tekst.
Alvast bedankt
Bedankt voor het meedenken. Maar kan er ook iemand even een script maken die verbinding maakt met database en dan de kolom status aanpast door middel van buttons?
Met al die losse stukjes kom ik er echt niet uit ;(
het mag of 1,2,3 etc zijn per status of gewoon de tekst.
Alvast bedankt
"Maar kan er ook iemand even een script maken ..."
Euh ... nou, we zijn geen afhaalchinees hoor ... :-/
Euh ... nou, we zijn geen afhaalchinees hoor ... :-/
We willen je graag helpen, maar verwachten toch enige zelfinzet.
Connectie maak je zo aan:
http://php.net/manual/en/function.mysqli-connect.php
Zo voer je een query uit:
http://php.net/manual/en/mysqli.query.php
Zo gebruik je een UPDATE-query in mysqli_query(...):
https://www.w3schools.com/php/php_mysql_update.asp
Probeer zelf nu eens een script in elkaar te rijgen die dit doet. Lukt dat?
Als je echt een kant en klaar script wilt, dan kan je beter een Vacaturetopic in ons Vacatureforum plaatsen, volgens de daar geldende regelgeving.
Connectie maak je zo aan:
http://php.net/manual/en/function.mysqli-connect.php
Zo voer je een query uit:
http://php.net/manual/en/mysqli.query.php
Zo gebruik je een UPDATE-query in mysqli_query(...):
https://www.w3schools.com/php/php_mysql_update.asp
Probeer zelf nu eens een script in elkaar te rijgen die dit doet. Lukt dat?
Als je echt een kant en klaar script wilt, dan kan je beter een Vacaturetopic in ons Vacatureforum plaatsen, volgens de daar geldende regelgeving.
Gewijzigd op 28/12/2018 20:52:37 door - Ariën -




