Lege checkbox posten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat 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 jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

C# Developer

Dit ga je doen Je gaat aan de slag in het websites team of portals team waarin je je bezighoudt met concept & design, implementatie en ook een stukje bugfixing en onderhoud; Je werkt met je team volgens de Scrum werkwijze; Zo adviseer je ook de PO & Scrum Master over de technische architectuur, koppelingen en integratie met externe systemen en API’s; Je blijft op de hoogte van de laatste ontwikkelingen en trends op het gebied van C# / .NET en deelt deze kennis binnen de organisatie. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Team Lead Java Developer

Functie Wat ga je doen als Java developer? Als Team Lead Java Developer draag een grote verantwoordelijk je stuurt ontwikkelaars aan en staat dagelijks in contact met jou ICT Manager. De team Bestaat uit front-end en backend systemen. Je ben in staat op hoog niveau de technische vak te bepalen en ook te bewaren. Je dag zie er als volgt uit, ontwikkelen van nieuwe en bestaande applicaties, het uitvoeren van processen en analyses en het beschrijven van functioneel ontwerpen. Ook zal samen met jouw Tester applicaties gaan testen door middel van peer reviews en het leveren van support aan gebruikers

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 »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

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

16/02/2025 12:44:16
 
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.