FORM radiobutton naar array multiple row UPDATE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
echo '<form name = "uitvaller" action = "'.$_SERVER['PHP_SELF'].'" method="post">';
$queryrenner = "
SELECT *
FROM renners
WHERE ploeg_id = $ploeg_id
";
$meedoen = mysql_query($queryrenner) or die (mysql_error($query));
while ($kies = mysql_fetch_array($meedoen))
{
if ($kies['ronde_$rd_id'] = 'J'){
echo $kies['naam_renner'];
echo '<input type="radio" name="'.$kies['id_renner'].'" value="J" checked="checked"><input type="radio" name="'.$kies['id_renner'].'" value="" ><br>';
}
else
{
echo $kies['naam_renner'];
echo '<input type="radio" name="'.$kies['id_renner'].'" value="J" ><input type="radio" name="'.$kies['id_renner'].'" value="" checked="checked"><br>';
}
}
?>
$queryrenner = "
SELECT *
FROM renners
WHERE ploeg_id = $ploeg_id
";
$meedoen = mysql_query($queryrenner) or die (mysql_error($query));
while ($kies = mysql_fetch_array($meedoen))
{
if ($kies['ronde_$rd_id'] = 'J'){
echo $kies['naam_renner'];
echo '<input type="radio" name="'.$kies['id_renner'].'" value="J" checked="checked"><input type="radio" name="'.$kies['id_renner'].'" value="" ><br>';
}
else
{
echo $kies['naam_renner'];
echo '<input type="radio" name="'.$kies['id_renner'].'" value="J" ><input type="radio" name="'.$kies['id_renner'].'" value="" checked="checked"><br>';
}
}
?>
</select>
<input type="submit" name="renner" value="kiesteam">
<input type="hidden" name="gekozen_ronde" value="">
<input type="hidden" name="teamkeus" value="">
</form>
Nu moet er na het aanpassen van de radiobuttons een update gebeuren op alle rijen , maar ik moet nu eerst met een foreach alle $_POST[] waarden ophalen en daarna updaten denk ik.
Alleen weet ik niet hoeveel rijen er moeten worden geupdate, want een team kan van 15 t/m 30 wielrennersrenners bevatten.
Hoe lees ik al die waarden in in een array ?
<input type="..whatever.." name="waardes[]" value="2"/>
<input type="..whatever.." name="waardes[]" value="3"/>
en dan krijg je een array...
als je dan nog een goede referentie in je value stopt ben je er...
Gewijzigd op 01/01/1970 01:00:00 door Lode
name = $kies['id_renner'], in de while loop.
mijn laatste zin was bij nader inzien niet helemaal goed.
Ik bedoel, hoe lees ik de gemaakte array weer uit na de post en update dan de DB ?
Probeer het eens:
Code (php)
<form name='blaat' method='post' action=''>
<input type="text" name="blaat[]" value="12345" />
<input type="text" name="blaat[]" value="98765" />
<input type="text" name="blaat[]" value="oja" />
<input type="submit" />
</form>
Deze key heb ik nodig om te weten welke row ik moet updaten.
Standaard staat waarde in de tabel ronde_$rd_id op "".(=leeg)
De bedoeling is dus dat de $kies[id_renner] de key van het array wordt en de waarde die gechecked wordt, wordt doorgegeven aan de database veld ronde_$rd_id behorende bij die key.
voorbeeld, uit de database komt:
Jan 0 x (id= 612)
Piet x 0 (id= 14)
Klaas x 0 (id= 977)
enz...
(x= checked)
als ik nu een of meer radioboxen verander moet na submit het form verstuurd worden en de waarde van de radioboxen moet ronde_$rd_id van ALLE rows die zijn opgehaald updaten!
hopelijk maakt dit iets duidelijker.
Gewijzigd op 01/01/1970 01:00:00 door patrick G
Code (php)
Dan kijk je na het verzenden gewoon welke id's er in de array $_POST['blaat zitten']. Die moet je updaten en op x zetten ipv 0.
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
ik bedacht dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
while ($kies = mysql_fetch_array($meedoen))
{
$renner = $kies['id_renner'];
if ($kies['ronde_$rd_id'] = 'J'){
echo $kies['naam_renner'];
echo '<input type="checkbox" name="id[]" value="'.$renner.'" checked="checked"><br>';
}
else
{
echo $kies['naam_renner'];
echo '<input type="checkbox" name="id[]" value="'.$renner.'" ><br>';
}
}?>
while ($kies = mysql_fetch_array($meedoen))
{
$renner = $kies['id_renner'];
if ($kies['ronde_$rd_id'] = 'J'){
echo $kies['naam_renner'];
echo '<input type="checkbox" name="id[]" value="'.$renner.'" checked="checked"><br>';
}
else
{
echo $kies['naam_renner'];
echo '<input type="checkbox" name="id[]" value="'.$renner.'" ><br>';
}
}?>
Dan zou ik in de foreach
moeten uitvragen of de check wel gezet is of niet.
Code (php)
kan dat ?
Gewijzigd op 01/01/1970 01:00:00 door patrick G
patrick schreef op 18.03.2008 21:55:
Nou, dat werkt dus niet, $kies[id_renner] spuugt namelijk de primary key uit.
Deze key heb ik nodig om te weten welke row ik moet updaten.
Standaard staat waarde in de tabel ronde_$rd_id op "".(=leeg)
De bedoeling is dus dat de $kies[id_renner] de key van het array wordt en de waarde die gechecked wordt, wordt doorgegeven aan de database veld ronde_$rd_id behorende bij die key.
voorbeeld, uit de database komt:
Jan 0 x (id= 612)
Piet x 0 (id= 14)
Klaas x 0 (id= 977)
enz...
(x= checked)
als ik nu een of meer radioboxen verander moet na submit het form verstuurd worden en de waarde van de radioboxen moet ronde_$rd_id van ALLE rows die zijn opgehaald updaten!
hopelijk maakt dit iets duidelijker.
Deze key heb ik nodig om te weten welke row ik moet updaten.
Standaard staat waarde in de tabel ronde_$rd_id op "".(=leeg)
De bedoeling is dus dat de $kies[id_renner] de key van het array wordt en de waarde die gechecked wordt, wordt doorgegeven aan de database veld ronde_$rd_id behorende bij die key.
voorbeeld, uit de database komt:
Jan 0 x (id= 612)
Piet x 0 (id= 14)
Klaas x 0 (id= 977)
enz...
(x= checked)
als ik nu een of meer radioboxen verander moet na submit het form verstuurd worden en de waarde van de radioboxen moet ronde_$rd_id van ALLE rows die zijn opgehaald updaten!
hopelijk maakt dit iets duidelijker.
Fantastisch tig regels code...
Ik schrijf eens stukje werkende code voor je hoor?! Met als uitkomst:
Array
(
[blaat] => Array
(
[0] => 12345
[1] => 98765
[2] => oja
)
)
Ik geef je het antwoord maar heb je het uberhaupt wel geprobeerd?!
maar
als output.
daarom heb ik het niet geprobeerd.
@ Jan Koehoorn:
Jouw code werkt dus wel om een J toe te voegen aan de tabel (bij het checken van de checkbox ), maar ik wil ook "unchecken" voor tabellen waar een eerdere update ongedaan moet worden gemaakt , dat doet het niet.
De reden dat ik het zo wil is om te zorgen dat er 1 overzicht ontstaat waarmee ik in 1 oogopslag kan controleren en aanpassen welke rij geupdate is en welke niet
Gewijzigd op 01/01/1970 01:00:00 door patrick G
Toch met jouw code Jan, maar met een extra truukje.
Na het selecteren en laten zien van de waarden in de rijen zet ik eerst alle geselecteerde rijen in de database op 0.
Hierna update ik met de foreach alle gecheckte waarden naar "J" .
Bedankt voor het meedenken.