javascript binnen while loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas van de Ven

Bas van de Ven

19/01/2022 21:15:26
Quote Anchor link
In mijn programma zijn er ooien gedekt door rammen en deze vormen samen een koppel. Deze dekkingen zijn eerder ingelezen in mijn programma. Dus deze koppels bestaan al in de database.
Op enig moment krijgt de ooi een echo om te zien of ze drachtig is. Dit moment wordt gescand met een reader. De reader wordt uitgelezen in mijn programma en de drachtdatum en oornummer van het ooi wordt getoond per regel (record) op de internetpagina. Deze drachtlijst wordt gecontroleerd en daarna ingelezen in mijn programma. Tijdens de controle kan per regel de ooi nog worden gewijzigd m.b.v. een keuzelijst. Als een andere ooi is gekozen wil ik m.b.v. javascript automatisch de ram tonen die bij die nieuw gekozen ooi hoort.
Ik ben aan het testen met 3 (dracht)records. Als ik de ooi wijzig in het eerste record (uit de while loop) werkt de javascript prima. Bij het 2e en 3e record werkt de javascript niet. Bij die records/regels wijzigt er niets.

Hieronder staat mijn code. Wat doe ik fout?


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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>Registratie</title>
</head>
<body>


<?php
Include "connect_db.php";

// Array tbv javascript om vader automatisch te tonen
$zoek_laatste_dekkingen = mysqli_query($db,"
SELECT v.mdrId, right(vdr.levensnummer,5) lev
FROM tblVolwas v
 join (
     SELECT v.mdrId, max(v.volwId) volwId
    FROM tblVolwas v
     left join tblHistorie hv on (hv.hisId = v.hisId)
     left join tblDracht d on (v.volwId = d.volwId)
     left join tblHistorie hd on (hd.hisId = d.hisId)
     left join tblSchaap k on (k.volwId = v.volwId)
     left join (
        SELECT s.schaapId
        FROM tblSchaap s
         join tblStal st on (s.schaapId = st.schaapId)
         join tblHistorie h on (st.stalId = h.stalId)
        WHERE h.actId = 3
     ) ha on (k.schaapId = ha.schaapId)
    WHERE (isnull(hv.hisId) or hv.skip = 0) and (isnull(hd.hisId) or hd.skip = 0) and isnull(ha.schaapId)
    GROUP BY v.mdrId
 ) lv on (v.volwId = lv.volwId)
 join tblSchaap vdr on (vdr.schaapId = v.vdrId)
"
) or die (mysqli_error($db));

while ( $zld = mysqli_fetch_assoc($zoek_laatste_dekkingen)) { $array_vader_uit_koppel[$zld['mdrId']] = $zld['lev']; }

// Einde Array tbv javascript om vader automatisch te tonen
?>


<script>

function toon_dracht() {

var moeder = document.getElementById("moeder");        var mr = moeder.value;


 if(mr.length > 0) toon_vader_uit_koppel(mr);

}

 var jArray_vdr = <?php echo json_encode($array_vader_uit_koppel); ?>;

function toon_vader_uit_koppel(m) {

     if(jArray_vdr[m] != null)
     {
    document.getElementById('vader').style.display = "none";
      document.getElementById('vader').value = null; // veld leegmaken indien gevuld
      document.getElementById('result_vader').innerHTML = jArray_vdr[m];
    }
      else
      {
    document.getElementById('vader').style.display = "inline-block";
    document.getElementById('result_vader').innerHTML = "";
      }
}

</script>


<form action="phpHulp.php" method = "post">
<table border = 0>
<tr valign = bottom style = "font-size : 12px;">
 <th>Moeder<hr></th>
 <th>Vader<hr></th>
 <th><hr></th>

</tr>

<?php
// Declaratie MOEDERDIEREN
$zoek_moederdieren = mysqli_query($db,"
SELECT st.schaapId, s.levensnummer, right(s.levensnummer,5) werknr
FROM tblSchaap s
 join tblStal st on (st.schaapId = s.schaapId)
 join tblVolwas v on (s.schaapId = v.mdrId)
WHERE st.lidId = 13 and v.vdrId is not null
ORDER BY right(s.levensnummer,5)
"
) or die (mysqli_error($db));


$index = 0;
while ($mdr = mysqli_fetch_assoc($zoek_moederdieren))
{

   $mdrkey[$index] = $mdr['schaapId'];
   $wnrOoi[$index] = $mdr['werknr'];
   $index++;
}

unset($index);
// EINDE Declaratie MOEDERDIEREN

$velden = mysqli_query($db,"
SELECT rd.Id
FROM impAgrident rd
WHERE rd.lidId = 13 and rd.actId = 19 and isnull(verwerkt)
ORDER BY str_to_date(rd.datum,'%d/%m/%Y'), rd.Id
"
) or die (mysqli_error($db));

while ($vldn = mysqli_fetch_assoc($velden)) {
 ?>




<tr style = "font-size:14px;">

 <td style = "font-size : 11px;">

 <select id="moeder" onchange = "toon_dracht()" style= "width:65; font-size:12px;" name = <?php echo "kzlOoi_$Id"; ?> >
  <option></option>
<?php    $count = count($wnrOoi);
for ($i = 0; $i < $count; $i++){

    $opties = array($mdrkey[$i]=>$wnrOoi[$i]);
            foreach($opties as $key => $waarde)
            {

  if ((!isset($_POST['knpVervers_']) && $mdrId_rd == $key) || (isset($_POST["kzlOoi_$Id"]) && $_POST["kzlOoi_$Id"] == $key)){
    echo '<option value="' . $key . '" selected>' . $waarde . '</option>';
  }
else {
    echo '<option value="' . $key . '" >' . $waarde . '</option>';  
  }        
            }
}

?>
</select>

 </td>
 <td>

 <select style= "width:125; font-size:12px;" id="vader" name = <?php echo "kzlRam_$Id"; ?> >
 <option></option>    
<?php    $count = count($lvnrRam);
for ($i = 0; $i < $count; $i++){

        
    $opties= array($vdrkey[$i]=>$lvnrRam[$i]);
            foreach ($opties as $key => $waarde)
            {

  if ((!isset($_POST['knpVervers_']) && $ram_db == $vdrRaak[$i]) || (isset($_POST["kzlRam_$Id"]) && $_POST["kzlRam_$Id"] == $key)){
    echo '<option value="' . $key . '" selected>' . $waarde . '</option>';
  }
else {
    echo '<option value="' . $key . '" >' . $waarde . '</option>';  
  }    
            }
        
}
?>

 </select><p id="result_vader"></p>

 </td>

</tr>


<?php }  ?>
</table>
</form>



</body>
</html>
Gewijzigd op 19/01/2022 21:20:53 door Bas van de Ven
 
PHP hulp

PHP hulp

19/04/2024 13:11:12
 
- Ariën  -
Beheerder

- Ariën -

19/01/2022 22:09:14
Quote Anchor link
Ook hier geldt de D.R.Y. methode:

Don't
Repeat
Yourself

Waarom zou je de hele JavaScript constant opnieuw uitvoeren in je while-loop?
Ik denk eerder dat je jouw data (uit jArray_vdr ) die je aan je Javascript voert juist enkel in een while wilt vullen.

Als we het toch over D.R.Y hebben, dan kan je die twee foreaches ook meteen netjes verpakken in een eigen gemaakte PHP-functie. Nog een verbeterpuntje is dat je ook het ID nummer mee kan geven als extra array-element: $_POST['ram'][$id]

Dan kan je meteen mooie filters maken als je wilt.
Gewijzigd op 19/01/2022 22:11:52 door - Ariën -
 
Bas van de Ven

Bas van de Ven

21/01/2022 19:33:19
Quote Anchor link
Het enigste dat in een while loop zit is het aanroepen van de functie toon_dracht(). Zie regel 119 binnen while ($vldn = mysqli_fetch_assoc($velden))
De while loop ( $zld = mysqli_fetch_assoc($zoek_laatste_dekkingen)) op regel 36 wordt in dezelfde regel gesloten. Dus ik begrijp niet op welke loop je doelt.

Ik wil een lijst met koppels (ooi-ram) samenstellen die wordt gebruikt in de while loop while ($vldn = mysqli_fetch_assoc($velden)).
Op elke regel (als output van de while loop) kan de ooi worden gewijzigd. Zodra een ooi wijzigt wil ik op betreffende regel automatisch bijbehorende ram tonen. Dit o.b.v. de samengestelde lijst met koppels.

Een functie voor de foreaches is een goeie tip.
 
- Ariën  -
Beheerder

- Ariën -

21/01/2022 21:34:30
Quote Anchor link
Je hebt gelijk met die whileloop. Dan is er daar geen probleem aan de hand.

Ik denk dat als je mijn andere adviezen opvolgt, dat het script wat makkelijker te volgen is.
 
Bas van de Ven

Bas van de Ven

22/01/2022 08:23:44
Quote Anchor link
Zo dan ?

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>Registratie</title>
</head>
<body>


<?php
Include "connect_db.php";


function
kzl_loop($ArrayKey, $ArrayName, $dbKey, $btnRefresh, $fldKey) {
$count = count($ArrayName);
for ($i = 0; $i < $count; $i++){

    $opties = array($ArrayKey[$i]=>$ArrayName[$i]);
            foreach($opties as $key => $waarde)
            {

  if ((!isset($btnRefresh) && $dbKey == $key) || (isset($fldKey) && $fldKey == $key)){
    echo '<option value="' . $key . '" selected>' . $waarde . '</option>';
  }
else {
    echo '<option value="' . $key . '" >' . $waarde . '</option>';  
  }        
            }
}
}



// Array tbv javascript om vader automatisch te tonen
$zoek_laatste_dekkingen = mysqli_query($db,"
SELECT v.mdrId, right(vdr.levensnummer,5) lev
FROM tblVolwas v
 join (
     SELECT v.mdrId, max(v.volwId) volwId
    FROM tblVolwas v
     left join tblHistorie hv on (hv.hisId = v.hisId)
     left join tblDracht d on (v.volwId = d.volwId)
     left join tblHistorie hd on (hd.hisId = d.hisId)
     left join tblSchaap k on (k.volwId = v.volwId)
     left join (
        SELECT s.schaapId
        FROM tblSchaap s
         join tblStal st on (s.schaapId = st.schaapId)
         join tblHistorie h on (st.stalId = h.stalId)
        WHERE h.actId = 3
     ) ha on (k.schaapId = ha.schaapId)
    WHERE (isnull(hv.hisId) or hv.skip = 0) and (isnull(hd.hisId) or hd.skip = 0) and isnull(ha.schaapId)
    GROUP BY v.mdrId
 ) lv on (v.volwId = lv.volwId)
 join tblSchaap vdr on (vdr.schaapId = v.vdrId)
"
) or die (mysqli_error($db));

while ( $zld = mysqli_fetch_assoc($zoek_laatste_dekkingen)) {

    $array_vader_uit_koppel[$zld['mdrId']] = $zld['lev'];
}


// Einde Array tbv javascript om vader automatisch te tonen
?>


<script>

function toon_dracht() {

var moeder = document.getElementById("moeder");        var mr = moeder.value;


 if(mr.length > 0) toon_vader_uit_koppel(mr);

}

 var jArray_vdr = <?php echo json_encode($array_vader_uit_koppel); ?>;

function toon_vader_uit_koppel(m) {
    //document.getElementById('result_vader').innerHTML = jArray_vdr[m];

     if(jArray_vdr[m] != null)
     {
    document.getElementById('vader').style.display = "none";
      document.getElementById('vader').value = null; // veld leegmaken indien gevuld
      document.getElementById('result_vader').innerHTML = jArray_vdr[m];
    }
      else
      {
      //document.getElementById('vader').style.display = "block";
    document.getElementById('vader').style.display = "inline-block";
    document.getElementById('result_vader').innerHTML = "";
      }
}

</script>


<form action="phpHulp.php" method = "post">
<table border = 0>
<tr valign = bottom style = "font-size : 12px;">
 <th>Moeder<hr></th>
 <th>Vader<hr></th>
 <th><hr></th>

</tr>

<?php
// Declaratie MOEDERDIEREN
$zoek_moederdieren = mysqli_query($db,"
SELECT st.schaapId, s.levensnummer, right(s.levensnummer,5) werknr
FROM tblSchaap s
 join tblStal st on (st.schaapId = s.schaapId)
 join tblVolwas v on (s.schaapId = v.mdrId)
WHERE st.lidId = 13 and v.vdrId is not null
ORDER BY right(s.levensnummer,5)
"
) or die (mysqli_error($db));


$index = 0;
while ($mdr = mysqli_fetch_assoc($zoek_moederdieren))
{

   $mdrkey[$index] = $mdr['schaapId'];
   $wnrOoi[$index] = $mdr['werknr'];
   $index++;
}

unset($index);
// EINDE Declaratie MOEDERDIEREN

$velden = mysqli_query($db,"
SELECT rd.Id
FROM impAgrident rd
WHERE rd.lidId = 13 and rd.actId = 19 and isnull(verwerkt)
ORDER BY str_to_date(rd.datum,'%d/%m/%Y'), rd.Id
"
) or die (mysqli_error($db));

while ($vldn = mysqli_fetch_assoc($velden)) {

   $Id = $vldn['Id']; ?>




<tr style = "font-size:14px;">

 <td style = "font-size : 11px;">

 <select id="moeder" onchange = "toon_dracht()" style= "width:65; font-size:12px;" name = 'kzlOoi' >
  <option></option>
<?php
    kzl_loop($mdrkey, $wnrOoi, $mdrId_rd, $_POST['knpVervers'], $_POST['kzlOoi'][$Id]); ?>

</select>

 </td>
 <td>

 <select style= "width:125; font-size:12px;" id="vader" name = 'kzlRam' >
 <option></option>    
<?php    
    kzl_loop($vdrkey, $lvnrRam, $ram_db, $_POST['knpVervers'], $_POST['kzlRam'][$Id]); ?>

 </select><p id="result_vader"></p>

 </td>

</tr>


<?php }  ?>
</table>
</form>



</body>
</html>



Toevoeging op 22/01/2022 12:33:14:

Nu hoop ik nog dat er iemand is die antwoord kan geven op mijn vraag of kan vertellen waar ik een oplossing kan vinden. :)
Deze heb ik nl. nog niet gevonden.

Toevoeging op 22/01/2022 19:41:53:

Ik heb zelf een oplossing gevonden.

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>Registratie</title>
</head>
<body>


<?php
Include "connect_db.php";


function
kzl_loop($ArrayKey, $ArrayName, $dbKey, $btnRefresh, $fldKey) {
$count = count($ArrayName);
for ($i = 0; $i < $count; $i++){

    $opties = array($ArrayKey[$i]=>$ArrayName[$i]);
            foreach($opties as $key => $waarde)
            {

  if ((!isset($btnRefresh) && $dbKey == $key) || (isset($fldKey) && $fldKey == $key)){
    echo '<option value="' . $key . '" selected>' . $waarde . '</option>';
  }
else {
    echo '<option value="' . $key . '" >' . $waarde . '</option>';  
  }        
            }
}
}



// Array tbv javascript om vader automatisch te tonen
$zoek_laatste_dekkingen = mysqli_query($db,"
SELECT v.mdrId, right(vdr.levensnummer,5) lev
FROM tblVolwas v
 join (
     SELECT v.mdrId, max(v.volwId) volwId
    FROM tblVolwas v
     left join tblHistorie hv on (hv.hisId = v.hisId)
     left join tblDracht d on (v.volwId = d.volwId)
     left join tblHistorie hd on (hd.hisId = d.hisId)
     left join tblSchaap k on (k.volwId = v.volwId)
     left join (
        SELECT s.schaapId
        FROM tblSchaap s
         join tblStal st on (s.schaapId = st.schaapId)
         join tblHistorie h on (st.stalId = h.stalId)
        WHERE h.actId = 3
     ) ha on (k.schaapId = ha.schaapId)
    WHERE (isnull(hv.hisId) or hv.skip = 0) and (isnull(hd.hisId) or hd.skip = 0) and isnull(ha.schaapId)
    GROUP BY v.mdrId
 ) lv on (v.volwId = lv.volwId)
 join tblSchaap vdr on (vdr.schaapId = v.vdrId)
"
) or die (mysqli_error($db));

while ( $zld = mysqli_fetch_assoc($zoek_laatste_dekkingen)) {

    $array_vader_uit_koppel[$zld['mdrId']] = $zld['lev'];
}


// Einde Array tbv javascript om vader automatisch te tonen
?>


<script>

function toon_dracht(id) {

var ooi = 'moeder_' + id;
var moeder = document.getElementById(ooi);        var mr = moeder.value;


 if(mr.length > 0) toon_vader_uit_koppel(mr, id);

}

 var jArray_vdr = <?php echo json_encode($array_vader_uit_koppel); ?>;

function toon_vader_uit_koppel(m, i) {
    //document.getElementById('result_vader').innerHTML = jArray_vdr[m];

var ram = 'vader_' + i;
var resultVdr = 'result_vader_' + i;
     if(jArray_vdr[m] != null)
     {
    document.getElementById(ram).style.display = "none";
      document.getElementById(ram).value = null; // veld leegmaken indien gevuld
      document.getElementById(resultVdr).innerHTML = jArray_vdr[m];
    }
      else
      {
      //document.getElementById(ram).style.display = "block";
    document.getElementById(ram).style.display = "inline-block";
    document.getElementById(resultVdr).innerHTML = "";
      }
}

</script>


<form action="phpHulp.php" method = "post">
<table border = 0>
<tr valign = bottom style = "font-size : 12px;">
 <th>Moeder<hr></th>
 <th>Vader<hr></th>
 <th><hr></th>

</tr>

<?php
// Declaratie MOEDERDIEREN
$zoek_moederdieren = mysqli_query($db,"
SELECT st.schaapId, s.levensnummer, right(s.levensnummer,5) werknr
FROM tblSchaap s
 join tblStal st on (st.schaapId = s.schaapId)
 join tblVolwas v on (s.schaapId = v.mdrId)
WHERE st.lidId = 13 and v.vdrId is not null
ORDER BY right(s.levensnummer,5)
"
) or die (mysqli_error($db));


$index = 0;
while ($mdr = mysqli_fetch_assoc($zoek_moederdieren))
{

   $mdrkey[$index] = $mdr['schaapId'];
   $wnrOoi[$index] = $mdr['werknr'];
   $index++;
}

unset($index);
// EINDE Declaratie MOEDERDIEREN
?>


<tr><td>
    <input type = "submit" name = "knpVervers" value = "Verversen">
</td></tr>

<?php
$velden
= mysqli_query($db,"
SELECT rd.Id, moeder
FROM impAgrident rd
WHERE rd.lidId = 13 and rd.actId = 19 and isnull(verwerkt)
ORDER BY str_to_date(rd.datum,'%d/%m/%Y'), rd.Id
"
) or die (mysqli_error($db));

while ($vldn = mysqli_fetch_assoc($velden)) {

    $Id = $vldn['Id']; ?>




<tr style = "font-size:14px;">

 <td style = "font-size : 11px;">
     <?php echo $Id; ?>

 <select id= <?php echo "moeder_$Id"; ?> onchange = <?php echo "toon_dracht(".$Id.")"; ?> style= "width:65; font-size:12px;" name = 'kzlOoi' >
  <option></option>
<?php
    kzl_loop($mdrkey, $wnrOoi, $mdrId_rd, $_POST['knpVervers'], $_POST['kzlOoi'][$Id]); ?>

</select>

 </td>
 <td>

 <select style= "width:125; font-size:12px;" id= <?php echo "vader_$Id"; ?> name = 'kzlRam' >
 <option></option>    
<?php    
    kzl_loop($vdrkey, $lvnrRam, $ram_db, $_POST['knpVervers'], $_POST['kzlRam'][$Id]); ?>

 </select><p id= <?php echo "result_vader_$Id"; ?> ></p>

 </td>

</tr>


<?php }  ?>
</table>
</form>



</body>
</html>


Nu weet ik alleen niet hoe ik de waarde in $Id uit $_POST['kzlOoi'][$Id] kan halen. Maar ik kan weer vooruit met $_POST["kzlOoi_$Id"].
Gewijzigd op 22/01/2022 16:48:50 door Bas van de Ven
 
- Ariën  -
Beheerder

- Ariën -

23/01/2022 19:18:39
Quote Anchor link
Just asking, maar wat betekent kzlOoi precies?

$_POST['kzlOoi'][$Id]

Geen idee wat kzl is, maar 'Ooi' dat ken ik wel.
Persoonlijk zou ik kzl dan ook verduidelijken. Of is het een waarde uit een reeks?

Kan je dit geheel niet verder verfijnen?
$_POST[$type][$sexe][$Id]

Dus als invoer:
$_POST['kzl']['Ooi'][42]

Dus je arrayboom zou met dit alle Ooien aan moeten geven met het type kzl:
$_POST['kzl']['Ooi']
 
Bas van de Ven

Bas van de Ven

24/01/2022 19:51:29
Quote Anchor link
kzlOoi heeft te maken met mijn manier van programmeren, nl. de herkenbaarheid van mijn programmacode.

kzl staat voor keuzelijst (HTML element) kzlOoi is dus de naam van een keuzelijst met ooien.
txtAanvdm bijv. staat voor textveld aanvoerdatum.
chbKies bijv. is een checkbox. Is deze checkbox aangevinkt dan wil men het desbetreffende record op de pagina (na controle, zie 1e post in deze topic) inlezen in de database.
knpVervers bijv. staat voor knop (type submit) verversen van de pagina. Na het aanbrengen van wijzigingen klikt men op knpVervers en wordt elke regel op de pagina gevalideerd. Is een regel juist ingevuld dan is chbKies van die regel automatisch aangevinkt anders krijgt chbKies de status disabled.

$Id bevat het record_id van een record uit de database tabel. Elke regel op de pagina is een record en heeft zijn eigen unieke Id.
Na opslaan van de pagina worden diverse regels met steeds een ooi-nummer als waarde opgestuurd. Door $Id mee te geven weet ik welk ooi-nummer uit welke tabel-record komt.

Ik heb (dus) ook een knop 'opslaan' nl. knpSave. De php-code achter deze knop ziet er zo uit.
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
<?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 $recId => $id) { //$recId is het record_id uit de database tabel opgehaald uit de veldnaam


unset($fldRam);
unset($fldGrootte);
  
 foreach($id as $key => $value) {

  if ($key == 'chbKies')   { $fldKies = $value; } //
  if ($key == 'chbDel')    { $fldDel = $value; } // elke regel op de pagina kan 'individueel' worden verwijderd. Is deze checkbox aangevinkt dan wil men de regel op de pagina verwijderen.

   if ($key == 'txtDatum' && !empty($value)) { $dag = date_create($value); $valuedag =  date_format($dag, 'Y-m-d');
                           $fldDag = $valuedag; }
  
   if ($key == 'kzlOoi' && !empty($value)) {  $fldOoi = $value; }

   if ($key == 'kzlRam' && !empty($value)) { $fldRam = $value; }

   if ($key == 'txtGrootte' && !empty($value)) {  $fldGrootte = $value; }
    
                           }



      // HIER DE CODE OM DE DATABASE BIJ TE WERKEN

   }
?>


Met jouw voorstel $_POST['kzlOoi'][$Id] weet ik niet de waarde in $Id op te halen bij het versturen van de pagina. Deze waarde heb ik nodig binnen de code om de database bij te werken.
 
Jack jons

jack jons

25/01/2022 05:09:52
Quote Anchor link
hhhhiiiiiiiiihttps://www.phphulp.nl/php/forum/algemene-php-scripting-en-meer/3/
 



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.