checkboxen gelinkt aan dynamisch gegenereerde content

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

AP van Westrhenen

AP van Westrhenen

31/07/2017 15:10:59
Quote Anchor link
Goedemiddag,

Ik heb het onderstaande script uitgewerkt aan de hand van een aantal voorbeelden die ik op het internet gevonden heb.
In de eerste kolom wordt op basis van een query uit de mySql database een set aan gegevens getoond.
In de 2e kolom kan m.b.t. de getoonde gegevens aangegeven worden of dat dit uitgevoerd wordt met een selectievakje onder de titel J.
In de 3e kolom kan m.b.t. de getoonde gegevens aangegeven worden dat dit niet uitgevoerd wordt met een selectievakje onder de titel N.
In de 4e kolom kan in een tekst veld een opmerking geplaatst worden.
In de 5e kolom kan gekozen worden uit 5 niveau's(welke opgenomen zijn in een andere tabel in de zelfde database).

Het tonen van de set aan gegevens in de eerste kolom werkt prima.

Met de volgende stap heb ik aanmerkelijk meer moeite om de juiste uitleg op het internet terug te vinden. En ik hoop dat u me daarmee helpen kan.

de kolommen met J en N bevatten selectie vakjes.
1 ik wil dat als ik J aanvink dat dan in de participants tabel bij de actuele participant een regel wordt toegevoegd met;
- de rol waarin het item aangevinkt wordt
- het item dat aangevinkt wordt
- ja dan wel nee
- een opmerking uit het tekstveld
- en het resultaat uit de keuze selectie.
2 tegelijkertijd wil ik dat het vakje in de colom N onzichtbaar gemaakt wordt.
3 dat geldt ook omgekeerd. Dus als je het vakje in de N kolom aanvinkt, wordt het vakje in de J kolom onzichtbaar en wordt zoals hier boven beschreven een regel aan de participants tabel toegevoegd.

Ik heb een J en N kolom omdat er bewust voor zowel ja als nee gekozen moet kunnen worden.
De participant is eerder in het systeem aangemeld. En wordt m.b.v. een cookie gevolgd tot het moment dat deze uitlogt.

Het probleem dat ik heb, is dat de items uit een tabel "items" gehaald worden. Deze zijn dus dynamisch.
En ik heb onvoldoende kennis om de koppeling aan te brengen tussen de selectie vakjes, het tekstveld en de dropdown met de dynamisch gegenereerde gegevensset in de eerste kolom.

Om te beginnen lijkt het me het meest zinvol om eerst de selectie vakjes werkend te krijgen.

Ik begrijp dat dat op een manier gekoppeld kan worden die lijkt op;

<td>
<input type="checkbox" name="checked[]" value="' . $row['name'] . '" id="' . $row['name'] . '" /> </td>';

Maar ik kom met alle gevonden voorbeelden in de knoei met de eerste aanroep van de database voor de gegevensset in de eerste kolom.

Ik hoop dat iemand me ermee wil/kan helpen.

Al vast bedankt.


<div>
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
<?php
        // get the records from the database
        if ($result = $conn->query('SELECT * FROM items WHERE Rol="MA" AND Categorie="Decisions"'))
        {

        // display records if there are records to display
        if ($result->num_rows > 0)
        {

        // display records in a table
        echo "<table border='0' cellpadding='10'>";

        // set table headers
        echo "<tr><th>Items</th><th>Y</th><th>N</th><th>Comment</th><th>Level</th></tr>";

        while ($row = $result->fetch_object())
        {

        // set up a row for each record
        echo "<tr>";
        echo "<td>" . $row->Items . "</td>";
        echo "<td align='center'><input type='checkbox'></td>";
        echo "<td align='center'><input type='checkbox'></td>";
        echo "<td><input type='textbox'></td>";
        echo "<td><input type='dropdownbox'></td>";
        echo "</tr>";
        }

        echo "</table>";
        }

        // if there are no records in the database, display an alert message
        else
        {
        echo "No results to display!";
        }
        }

        // show an error if there is an issue with the database query
        else
        {
        echo "Error: " . $conn->error;
        }

        ?>

</div>
 
PHP hulp

PHP hulp

17/05/2024 02:49:06
 
Thomas van den Heuvel

Thomas van den Heuvel

31/07/2017 15:51:50
Quote Anchor link
Ik zou dit opsplitsen in deelproblemen:
- het ophalen van de juiste gegevens, eventueel met behulp van hulp-arrays voor het tijdelijk opslaan voor gemakkelijke bewerking/verwerking
- hoe je dit functioneel oplost in je formulier, al dan niet dynamisch met allerlei toeters en bellen

But first things first: hoeveel tabellen heb je en hoe is de informatie hierin georganiseerd? Zit alles in de (super)tabel "items"? Hoe worden entiteiten (items, personen et cetera) geïdentificeerd? Want dit is dan de kapstok waar je informatie aan op kunt hangen. Zo zou je van de textbox en dropdownbox ook arrays kunnen maken waarbij je elke rij identificeert met het item id: textbox[<item id>] (waarbij <item id> het item id is specifiek voor die rij). Als je daarna je formulier submit dan heb je alle data op een zodanige manier georganiseerd dat je deze makkelijk kunt koppelen (inserten/updaten) aan het bijbehorende item id.
 
AP van Westrhenen

AP van Westrhenen

01/08/2017 09:13:04
Quote Anchor link
Dank je wel voor je reactie. En sorry dat ik niet eerder kon reageren...

Ik heb de tabellen in mijn database tot nu toe zo klein mogelijk gehouden.
Ik ga er van uit dat met samengestelde query's ik een heel eind zou moeten kunnen komen.

Entiteiten:
deelnemers (participants)
functies (roles)
onderwerpen (items)
categorieën (categories)

In alle eerlijkheid heb ik nog niet nagedacht over het identificeren van de entiteiten.
Ik heb in de tabellen wel auto id aangezet, dus aan de hand van de verschillende id's kan ik de entiteiten aan elkaar koppelen. (Ik neem aan dat je dat bedoeld?)

Ik heb al e.e.a. van arrays gezien en gelezen, maar het blijft nog niet helemaal hangen. Ik ga daar even in duiken. Het blijft voor mij nog een beetje abracadabra. Maar al doende leert men.

Dank je wel voor je voorzet.
 



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.