login  Naam:   Wachtwoord: 
Registreer je!
 Forum

checkbox nakijken in een formulier

Offline Warbringer - 04/12/2006 13:43
Avatar van WarbringerOnbekend Hallo beste mensen,

Ik ben momenteel bezig met een punten systeem.
Hierin heb ik diverse checkboxen staan.

Bijvoorbeeld vink je 1 aan krijg je2 punten maar vink je 2 aan dan krijg je nul punten, en bij het aanvinken van 3 krijg je een additioneel punt bovenop je punten die je e.t. krijgt bij het aanvinken van 1 of 2.

Hoe kan ik met PHP deze dingen nakijken?

Dus zoiets van

als die en die en die en die zijn aangevinkt, dan krijgt de gebruiker XXXX zoveel punten, wat hij dan in de database opslaat.

dus zoiets van
  1. if($_GET['check_button1'] == "checked")
  2. {
  3. punt = "1";
  4. }


of zoiets

12 antwoorden

Gesponsorde links
Offline Thomas - 04/12/2006 13:51 (laatste wijziging 04/12/2006 13:52)
Avatar van Thomas Moderator Een checkbox zit in ieder geval niet in $_GET... Leer het je eens aan om method="post" te gebruiken. method="get" (of geen method) kent een paar vervelende beperkingen en veiligheidsrisico's waar ik je al eerder op wees.
Offline Warbringer - 04/12/2006 14:38
Avatar van Warbringer Onbekend klopt klopt 
maar iemand een idee hoe je dat kan doen dmv checkboxes?
Offline GTW - 04/12/2006 15:01 (laatste wijziging 04/12/2006 15:08)
Avatar van GTW Gouden medaille

PHP gevorderde
met een foreach loop
in de POST oproep natuurlijk 
  1. <?php
  2. $punt = 0;
  3. foreach($_POST['checkboxnaam'] as $check){
  4. $punt++;
  5. }

dan noem je je checkboxes in dit geval zo:
checkboxnaam[]
en de values zijn allemaal apart

[edit] vergeten te melden, je moet zoregn dat er iig 1 checkbox aangevinkt staat. anders geeft de foreach loop een error
Offline Warbringer - 04/12/2006 16:32 (laatste wijziging 04/12/2006 16:44)
Avatar van Warbringer Onbekend lol nog nooit gedaan dit maar als ik het dus goed begrijpt kijkt hij hiermee welke (foreach, oftewel voor elke aangevinkte) aagevinkt zijn en dan voegt hij één punt toe bij $punt die standaard de waarde 0 heeft klopt dat?

zal het straks meteens eens uitproberen dankjewel!!!



---- edit-----

de pagina waar je alles invult:
http://www.plaatscode.be/3270/

en de pagina die het verwerkt
http://www.plaatscode.be/3271/


Hoe kan ik het dan het beste doen want ik snap de code niet helemaal sorry 

Ik heb dus bijvoorbeeld voor het event 'Farming' de mogelijkheid:

Gewonnen en Verloren.

Won heet 'farming_won' en heeft de waarde 'check_won'
Verloren heet 'farming_lost' en heeft de waarde 'check_lost'

Ik hoef alleen dingen die op WON staan te registreren de rest is loos en doen we niks mee dus dan zou ik het moeten doen als volgt?

  1. $score = 0;
  2. foreach($_GET['farming_won'] as $check_won)
  3. {
  4. $score++;
  5. }

Ik weet $_GET moet $_POST worden dat verander ik zsm.
Maar de code is dus eigenlijk,

ALS farming_won is aangevinkt DAN tel 1 bij $score ?
Offline Thomas - 04/12/2006 16:56
Avatar van Thomas Moderator Euh, kun je hier niet veel beter radio-buttons van maken?

name=farming value=1 --> gewonnen
name=farming value=0 --> verloren

etc.?
Offline Warbringer - 04/12/2006 17:05
Avatar van Warbringer Onbekend werken radio buttons met value=1 en value=2 ?
k heb nooit met check buttons of radio buttons gewerkt dus weet niet wat het makkelijkste zou zijn
Offline Abbas - 04/12/2006 18:29
Avatar van Abbas Gouden medaille

Crew .NET
als je in eenzelfde lijstje maar 1 item mag selecteren kan je best met een lijstje van radio buttons werken, anders kan je met checkboxen werken...
Offline Warbringer - 05/12/2006 18:28
Avatar van Warbringer Onbekend lukt me echt niet sorry.
Heb nu dit even ingekort om het te leren heb dit:

de website waar je de stuff invult:
http://www.plaatscode.be/3281/

de pagina die wordt uitgevoerd dmv het hidden field gedeelte:
http://www.plaatscode.be/3282/

Dus als ik niks aanvinkt moet hij 0 laten zien, vink ik dat ding wel aan dan moet hij 1 erbij tellen en 1 laten zien.

ik krijg de volgende foutmelding:


Warning: Invalid argument supplied for foreach() in /var/www/g21553/gathering-technology.nl/HTML/FFXI/folder/point_system/system_content.php on line 10
0
Offline Rens - 06/12/2006 22:37
Avatar van Rens Gouden medaille

Crew algemeen
Dus als ik het goed zie gebruik je 1 checkbox?
Dan kun je gebruik maken van PHP.net: isset dacht ik.
  1. <?PHP
  2. if(IsSet($_POST['naam_checkbox']))
  3. {
  4. // aan
  5. } else
  6. {
  7. // uit
  8. }
  9. ?>


Of begrijp ik het nou verkeerd?
Offline Warbringer - 06/12/2006 23:37 (laatste wijziging 07/12/2006 19:37)
Avatar van Warbringer Onbekend alles opgelost, hartstikken bedankt mensen!
alweer iets bijgeleerd 

Rest me nog een vraag.

Ik heb een table in mjin SQL.

Ziet er zo uit (normaal 28 dingen ik laat er hier maar 3 zien):

id ........ name ........ points
1 ......... Angelo ...... 212

Wat ik nu dus wil is:

Hij voegt het nieuw toegevoegde punten toe bij de huidige die in de database staan. Hoe ga ik dat doen?

  1. mysql_query("INSERT INTO board_members (points) VALUES ($points) WHERE name = 'Angelo' ");


werkt helaas niet, denk dat het door het WHERE commando komt.
Iemand een oplossing? dus niet overschijven maar bij de huidige waarde optellen (b.v. 100 + 212 = 312) en dan alleen bij de opgegeven 'name' als die niet overeenkomt... ERROR 
Offline letscode - 07/12/2006 19:41
Avatar van letscode HTML beginner moet je dan niet de sql functie update gebruiken?
  1. <?php
  2. mysql_query("UPDATE board_membert SET points = points + ".$points" WHERE name = 'Angelo' ");
??
even snel uit mn hoofd 

Offline Warbringer - 07/12/2006 20:31
Avatar van Warbringer Onbekend kijk zal hem eens proberen, hartstikken bedankt.
somt dat ik niet aan het UPDATE commando gedacht heb >.<
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.221s