Lege checkbox posten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back end developer PHP

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Front-end (Angular) developer

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een Front-end (Angular) developer. Het it-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn dus op zoek naar professionals die autonoom en gedisciplineerd aan de slag gaan, en bij aanvang als enige developer met hun Front-end applicaties aan de slag gaat. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

Bekijk vacature »
Bas van de Ven

Bas van de Ven

19/04/2015 21:42:33
Quote Anchor link
Goedendag weer wat uren zitten vogelen met een probleem en nu toch maar weer een topic.

In een form toon ik diverse regels uit een tabel tblMeldingen. Deze gegevens kunnen worden aangepast en weer worden opgeslagen in de tabel met knpSave (submit). Zie onderstaande code.
Met knpMeld worden de gegevens uit tabel tblMeldingen in een txt bestand gezet op een bepaalde lokatie. Voor de gebruiker heet de knop 'melden'.
Nu wil ik ook dat een gebruiker per regel kan aangeven of het record niet hoeft worden gemeld en doe dat m.b.v. een checkbox.

Vinkt men de checkbox aan dan wordt een veld 'skip' van betreffend record uit tblMeldingen gevuld met de waarde 1.
Van alle records met de waarde 1 in het veld Skip staat in het formulier de checkbox aangevinkt.

Met onderstaande code gaat het tot nu toe prima.

Wil men de regel/ record toch melden dan moet men de checkbox weer uitvinken. Nu komt het.
Is een checkbox uitgevinkt dan krijg ik het veld 'skip' voor het betreffende record uit tabel tblMeldingen niet meer gewijzigd. Ik zou in dat geval de waarde 0 willen registreren. Zie in de code onderaan vanaf '// Uitzetten overslaan record'

Weet iemand hoe ik mijn code moet aanpassen zodat ik o.b.v. een lege checkbox ook het veld 'skip' kan wijzigen in tabel tblMeldingen.


<code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
function getNameFromKey($key) {
    $array = explode('_', $key);
    return $array[0];
}

function
getIdFromKey($key) {
    $array = explode('_', $key);
    return $array[1];
}


$array = array();

foreach($_POST as $key => $value) {
    
    $array[getIdFromKey($key)][getNameFromKey($key)] = $value;
}

foreach($array as $id) {

 foreach($id as $key => $value) {

    
  foreach($id as $key => $value) {
    if ($key == 'txtId' ) { /*echo $key.'='.$value.' ';*/ $updId = $value; }

    if ($key == 'txtDatum' ) { $txtDag = $value; $dag = date_create($value); $updDag =  date_format($dag, 'Y-m-d'); } // $txtDag tbv MeldAfleveren.php Niet weggooien dus !!    
    if ($key == 'cntrDatum' ) { $cntrDag = date_create($value); }
    if ($key == 'minDatum' ) { $laatsteDag = date_create($value); $minDag = date_format($laatsteDag, 'Y-m-d'); }
    
    if ($key == 'kzlAfnmr')  { $updRelatie = $value; }  // in MeldAanwas.php
    if ($key == 'cntrAfnmr') { $cntrRelatie = $value; } // in MeldAanwas.php
    
                                        }
                                    
                                    
// CONTROLE op gewijzigde velden

// Wijzigen datum

if (!empty($updDag) && $dag <> $cntrDag && $updDag >= $minDag)
{


 if($curr_url == $url.'MeldAanwas.php')     {$datumveld = "aanwasdm = \"$updDag\" ";}
 if($curr_url == $url.'MeldGeboortes.php')    {$datumveld = "geb_datum = \"$updDag\" ";    $datumbezet = "van = \"$updDag\" ";
    $upd_tblBezetting = "UPDATE tblBezetting SET ".$datumbezet." WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and levensnummer = '$cntrLevnr' ";    
        mysqli_query($db,$upd_tblBezetting) or die (mysqli_error($db));
 }

 if($curr_url == $url.'MeldAfleveren.php')    {$datumveld = "afleverdm = \"$updDag\" ";    $datumbezet = "tot = \"$updDag\" ";
    if ($cntrfase == 'lam') {
      $upd_tblBezetting = "UPDATE tblBezetting SET ".$datumbezet." WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and levensnummer = '$cntrLevnr' ";    
        mysqli_query($db,$upd_tblBezetting) or die (mysqli_error($db)); }
 
    }

 if($curr_url == $url.'MeldUitval.php')        {$datumveld = "uitvaldm = \"$updDag\" ";}
 
    $upd_tblDieren = "UPDATE tblDieren SET ".$datumveld." WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and levensnummer = '$cntrLevnr' ";    
        mysqli_query($db,$upd_tblDieren) or die (mysqli_error($db));    
    
    $upd_tblMeldingen = "UPDATE tblMeldingen SET datum = \"$updDag\" WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db));
        }


// Wijzigen bestemmening
 if($curr_url == $url.'MeldAfleveren.php' || $curr_url == $url.'MeldUitval.php') {
if ((!empty($updRelatie) && empty($cntrRelatie)) ||  (empty($updRelatie) && !empty($cntrRelatie)) || ( !empty($updRelatie) && !empty($cntrRelatie) && $updRelatie <> $cntrRelatie) )
{
    if (!empty($updRelatie)) {    $toekomst = "ubn_best = ".$updRelatie;    } else {    $toekomst = "ubn_best = NULL";    }
    $upd_tblMeldingen = "UPDATE tblMeldingen SET " . $toekomst . " WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db));
}
    }

// Wijzigen herkomst
if($curr_url == $url.'MeldAanwas.php')     {
if ((!empty($updRelatie) && empty($cntrRelatie)) ||  (empty($updRelatie) && !empty($cntrRelatie)) || ( !empty($updRelatie) && !empty($cntrRelatie) && $updRelatie <> $cntrRelatie) )
{
    if (!empty($updRelatie)) {    $herkomst = "ubn_herk = ".$updRelatie;    } else {    $herkomst = "ubn_herk = NULL";    }
    $upd_tblMeldingen = "UPDATE tblMeldingen SET " . $herkomst . " WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db));
}
    }

// EINDE CONTROLE op gewijzigde velden

    

//  Aanzetten overslaan record    

  if ($key == 'chbSkip' && !empty($value))     {  /* Alleen als checkbox chbSkip_$Id een waarde bevat*/  
    
  foreach($id as $key => $value) {
    if ($key == 'txtId' ) { echo $key.' key ='.$value.'<br/> '; $updId = $value; }
    
        $upd_tblMeldingen = "UPDATE tblMeldingen SET skip = 1 WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db));    }
        
        }
// EINDE Alleen als checkbox chbSkip_$Id een waarde bevat
    

// Uitzetten overslaan record

  if ($key == 'chbSkip' && !isset($value))     {  /* Alleen als checkbox chbSkip_$Id GEEN waarde bevat*/  
    
  foreach($id as $key => $value) {
    if ($key == 'txtId' ) { echo $key.' key ='.$value.'<br/> '; $updId = $value; }
    
        $upd_tblMeldingen = "UPDATE tblMeldingen SET skip = 0 WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db));    }
        
        }
// EINDE Alleen als checkbox chbSkip_$Id GEEN waarde bevat
        
        
    
    }
    }

                           

?>

</code>
 
PHP hulp

PHP hulp

11/03/2025 15:50:34
 
Thomas van den Heuvel

Thomas van den Heuvel

19/04/2015 22:11:45
Quote Anchor link
Uhh, ik hoop dat je niet verwacht dat we bovenstaande code gaan ontleden (wat een redelijke brei is als je het mij vraagt).

Ik kan zo gauw iha 3 oplossingen bedenken, weet niet welke past in jouw geval:

1. als je form submit, zorg je dat alle checkboxen die niet aangevinkt zijn de waarde 0 krijgen, daarna vink je ze alsnog aan. Dit zorgt ervoor dat alle checkboxen worden gepost met een status of ze aangevinkt waren (value 1) of niet (value 0).

2. verwijder alle velden die geassocieerd waren met voorheen aangevinkte checkboxen, en vul deze opnieuw. Maar dit kan resulteren in het verbreken van relaties wat ongewenst kan zijn (cascading deletes). Als je eea in kopppeltabellen hebt opgezet kan dit een valide strategie zijn, maar ik laat dit verder aan jouw oordeel over.

3. alles handmatig vergelijken: je hebt een lijst van alles wat potentieel aangevinkt kan zijn:
aanwezig en nu niet aangevinkt > verwijder
aanwezig en (nog steeds) aangevinkt > skip
afwezig en nu niet aangevinkt > skip
afwezig en nu aangevinkt > voeg toe
Maar als je je database / queries zo hebt opgezet is dit het moment dat je dit zal gaan betreuren

Wat ik je dringend zou aanraaden is bovenstaande code wat meer uit elkaar trekken zodat de werking eenduidiger wordt. Daarnaast mag je best wat ruimer gebruik maken van annotatie (commentaar in code) zodat andere mensen ook (beter) begrijpen waar deze code over gaat en wat deze doet.
 
Bas van de Ven

Bas van de Ven

21/04/2015 21:43:50
Quote Anchor link
Als ik je uitleg goed begrijp heb ik de opties al doorlopen zonder succes.
Ik heb overtollige code verwijderd en mijn doelstelling nader toelichten.

Met 1 button (knpSave) wil ik meerdere regels in een form tegelijk kunnen opslaan waarbij 1 regel gelijk staat aan een record in de tabel tblMeldingen. Elk veld in het form heeft per regel zijn unieke naam door deze naam aan te vullen met $Id waarbij $Id de unieke sleutel is uit tblMeldingen. Dus het enigste datumveld heet niet <code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php name = "txtDatum" ?>
</code> maar <code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php name = "txtDatum_$Id" ?>
</code>. Zo heeft elke regel zijn unieke datumnaam. Omdat ik dat voor elk veld heb gedaan kan ik met onderstaand script per regel en per veld de waarde tonen.
Het script heeft de naam save_meldingen.php dat ik include in een vijftal scripts met elk hun eigen soort melding.

<code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
function getNameFromKey($key) {
    $array = explode('_', $key);
    return $array[0];
}

function
getIdFromKey($key) {
    $array = explode('_', $key);
    return $array[1];
}


$array = array();

foreach($_POST as $key => $value) {
    
    $array[getIdFromKey($key)][getNameFromKey($key)] = $value;
}

foreach($array as $id) {

    
  foreach($id as $key => $value) { /* $key is de veldnaam $value is de waarde uit het veld */
    if ($key == 'txtId' )         { echo $key.'='.$value; $updId = $value;}
    if ($key == 'txtDierdm' ) { echo $key.'='.$value; $txtDag = $value; }
    if ($key == 'kzlAfnmr')     { echo $key.'='.$value."<br/>"; $updRelatie = $value; }    
    if ($key == 'chbSkip' )      { echo $key.'='.$value."<br/>"; $updSkip = $value; }
    
                                    }

                                    
        // Hier allerlei bewerkingen met variabelen $updId, $txtDag, $updRelatie en GRAAG OOK MET $updSkip !!!                    
                                    
                                    } ?>

</code>
Dit is het resultaat :
txtId=4 txtDierdm=01-12-2014 kzlAfnmr=
txtId=5 txtDierdm=01-12-2014 kzlAfnmr=2152444 chbSkip=1
txtId=6 txtDierdm=01-12-2015 kzlAfnmr=1058721 chbSkip=1
txtId=7 txtDierdm= kzlAfnmr=1058721
txtId=8 txtDierdm=01-12-2014 kzlAfnmr=1058721
txtId=9 txtDierdm=01-12-2014 kzlAfnmr=2152444

Als een tekstveld of keuzelijst leeg is wordt toch de naam van het veld getoond, zie resultaat. Echter niet als het veld een checkbox is dat niet is aangevinkt. Van de 5 regels in het from heb ik twee checkboxen aangevinkt. Het resultaat is terug te vinden achter txtId 5 en 6.

Is een checkbox niet aangevinkt wil ik toch een waarde kunnen posten. Nl. de waarde 0.
Sterker nog in mijn voorbeeld blijft de variabele $updSkip vanaf txtId 6 de waarde 1 houden waardoor Id 7 t/m 9 ook de waarde 1 mee krijgen.

Weet iemand hoe ik in mijn code ook een lege checkbox kan posten.
Of weet iemand hoe ik met 1 submit meerdere regels krijg gewijzigd incl. lege checkboxen ?
Gewijzigd op 21/04/2015 22:25:06 door Bas van de Ven
 
- SanThe -

- SanThe -

21/04/2015 21:50:00
Quote Anchor link
Bas van de Ven op 21/04/2015 21:43:50:
Echter niet als het veld een checkbox is dat niet is aangevinkt.


Een checkbox die niet is aangevinkt wordt niet meeverzonden.
 
Bas van de Ven

Bas van de Ven

21/04/2015 21:55:58
Quote Anchor link
O nee niet vanaf Id 6 maar waarom wordt dan het veld skip uit tabel tblMeldingen gevuld met de waarde 1 ?

Toevoeging op 21/04/2015 21:57:42:

<code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (isset($updId)) { if (isset($updSkip)) { $updSkip = 1; } else { $updSkip = 0; }
 $upd_tblMeldingen = "UPDATE tblMeldingen SET skip = '$updSkip' WHERE lidId = ".mysqli_real_escape_string($db,$lidId)." and meldId = '$updId' ";    
        mysqli_query($db,$upd_tblMeldingen) or die (mysqli_error($db)); ?>

</code>
Gewijzigd op 21/04/2015 22:06:48 door Bas van de Ven
 
Thomas van den Heuvel

Thomas van den Heuvel

21/04/2015 22:05:25
Quote Anchor link
Heb je al overwogen om een andere aanpak te volgen? Bijvoorbeeld:

- elk item een radiobutton geven (melden: (o) ja (o) nee)
- dat je items kunt slepen tussen twee (select) lijsten oid

Niet aangevinkte checkboxen worden in het geheel niet verstuurd, dus die zijn in dit geval niet zo handig omdat de "niet-aangevinkte-toestand" ook betekenis heeft.

EDIT: het is trouwens prima mogelijk om meerdimensionale arrays in je formuliervelden te stoppen, dus je hoeft deze niet na afloop te gaan verbouwen, je kunt deze meteen in de goede vorm in je formulier stoppen volgens mij.
Gewijzigd op 21/04/2015 22:07:11 door Thomas van den Heuvel
 
Bas van de Ven

Bas van de Ven

21/04/2015 22:10:25
Quote Anchor link
Ik ben meer van de checkboxen maar zal de radiobuttons toch eens serieuzer gaan overwegen als ik je zo hoor.

Toevoeging op 21/04/2015 22:16:13:

Hmm ... kun je je Edit toelichten met wat code. Of wordt dat te uitgebreid ?
 
- SanThe -

- SanThe -

21/04/2015 22:19:15
Quote Anchor link
Checkbox kan wel maar dan inderdaad in een if().

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_POST['checkboxnaam']))
{

   // aangevinkt
}
else
{
   // niet aangevinkt
}
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

21/04/2015 23:53:40
Quote Anchor link
<input type="text" name="stuff[<key>][<id>]" value="<value>" /> werkt volgens mij wel?

Ook een idee: stuur een hidden veld mee met alle id's, en vergelijk dat dan met de aangevinkte checkboxen. Maar dat is een beetje een gekunstelde oplossing als je het mij vraagt.
 
Bas van de Ven

Bas van de Ven

27/04/2015 14:47:04
Quote Anchor link
Het is opgelost door een hidden veld toe te voegen voor de checkbox met de waarde 0. Dit hidden veld heeft dezelfde naam als de checkbox.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type = "hidden" name = <?php echo " \"chbSkip_$Id\" "; ?> value = 0 >
<input type = "checkbox"  name = <?php echo "chbSkip_$Id" ; ?> value = 1 >

In het kader van performance verbetering (waar ik last van heb bij het opbouwen van het formulier) had ik gehoopt een oplossing te vinden in array veldnamen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type = "hidden" name = "chbSkip[]" value = 0 >
<input type = "checkbox" name = "chbSkip[]" value = 1 >

Ook daar loop ik aan tegen het probleem dat checkboxen niet bestaan na posten als deze op dat moment leeg zijn. Bovendien werkt de oplossing met een hidden veld niet bij array velden.

Daarom heb ik me verdiept in meerdimensionale array's maar kan niet volgen of daar een oplossing ligt voor mijn probleem.

Mijn bovenstaande code is ongewijzigd. De formulier velden zien er nu zo uit. Overtollige code heb ik weer verwijderd om het zo begrijpbaar mogelijk te houden.
<code>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
<tr>
<
td> <!--meldId:--> <input type= "hidden" echo "name=\"txtId_$Id\" value = $Id";  > </td>
<
td> <input type = "text" name = echo " \"txtDierdm_$Id\" value = $date ";  >  </td>
<
td>
<!--
KZLAFNEMER    -->
 <
select echo "name=\"kzlAfnmr_$Id\" "; value = "" >
  <
option></option>
    
    
    //  ****  Opbouw keuze lijst Afnemer uit de database ****

 // EINDE KZLAFNEMER

        
</select>
}
<
/td>
<
td>
<
input type = "hidden" name = echo " \"chbSkip_$Id\" "; value = 0 >
<
input type = "checkbox"  name = echo "chbSkip_$Id" ; value = 1 >
<
/td>

<
/tr> ?>

</code>
Gewijzigd op 27/04/2015 14:57:16 door Bas van de Ven
 
Thomas van den Heuvel

Thomas van den Heuvel

27/04/2015 15:35:39
Quote Anchor link
Als je niet na afloop op een of andere manier kunt bepalen welke items er mogelijk allemaal zijn (dmv een query ofzo), dan is optie #1 uit mijn eerdere reactie nog de meest "cleane" oplossing denk ik.

Hieronder een proof-of-concept:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
header('Content-Type: text/html; charset=UTF-8');

// helper function
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}

?>

<!DOCTYPE html>
<html>
<head>
<title>Checkbox test</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
</head>

<body>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    ?>
<pre><?php echo print_r(array_map('escape', $_POST['cb']), true) ?></pre>
    <hr /><?php
}
?>

<form id="theForm" action="<?php echo escape($_SERVER['PHP_SELF']) ?>" method="post">
<p><input type="checkbox" name="cb[0]" id="cb_1" value="1" /> <label for="cb_1">first</label></p>
<p><input type="checkbox" name="cb[1]" id="cb_2" value="1" /> <label for="cb_2">second</label></p>
<p><input type="checkbox" name="cb[2]" id="cb_3" value="1" /> <label for="cb_3">third</label></p>
<p><input type="checkbox" name="cb[3]" id="cb_4" value="1" /> <label for="cb_4">fourth</label></p>
<p><input type="checkbox" name="cb[4]" id="cb_5" value="1" /> <label for="cb_5">fifth</label></p>
<button type="submit">submit</button>
</form>
<script type="text/javascript">
//<![CDATA[
$().ready(function() {
    $('#theForm').submit(function(e) {
        // inspect all checkboxes starting with cb
        $('input[name^=cb]').each(function() {
            if ($(this).is(':checked') === false) {
                // update value to 0
                $(this).val('0');
                // check them anyway so they are posted
                $(this).prop('checked', true);
            }
        });
    });
});
//]]>
</script>
</body>
</html>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.