Avatar billede christian-s Nybegynder
19. maj 2006 - 20:07 Der er 5 kommentarer

Checkboxes: Opdatering af data med array

Jeg har en række foreninger og en række aktiviteter. Hver forening kan til/framelde sig aktiviteterne vha. checkboxes.
Til hver aktivitet i den enkelte forening er der en kontaktperson.

Tilmeldingen virker fint, men når jeg skal redigere foreningens aktiviteter har jeg problemer - jeg skal jo finde ud af, om jeg skal tilføje, "lade være" eller slette aktiviteten (og tilhørende kontaktperson).

Håber I kan hjælpe!

Databasestruktur:
- tabel_aktiviteter:
id, navn
- tabel_kontaktpersoner:
id, navn
- tabel_link:
id, aktivitet_id, kontaktperson_id, forening_id

Strukturen i min kode:

##mysql_array (her "checker" jeg aktiviteten hvis foreningen er tilmeldt - det virker fint)
{
echo "<input type='checkbox' name='aktivitet[]' value='".$data[id]."'$checked>".$data[aktivitet]."<br>\n";
}

## løber de checkede aktiviteter igennem
foreach ($_POST['aktivitet'] AS $aktivitet) {

// Jeg har her prøvet at hente alle poster fra tabel_link og se, om aktiviteten allerede var tilføjet osv., det virkede dog ikke. Hvordan gøres det?

// ØNSKET LØSNING:
// 1. operation { skal slette aktiviteten hvis den er blevet fraklikket }
// 2. operation { skal tilføje aktiviteten hvis den er blevet tilklikket }
// 3. operation { skal lade den stå, hvis der ikke er blevet fra/tilklikket}
}
Avatar billede jakobdo Ekspert
19. maj 2006 - 20:46 #1
Nu ved jeg ikke om du har x antal rækker defineret, eller om det kommer løbende.
Men du kunne evt bruge aktivitet_id, kontaktperson_id og forening_id som kombineret primær nøgle.
Men mangler du ikke et felt som angiver om det er tilføjet eller ej?
Eller der er måske ikke nogen i den tabel, hvis ikke der er nogen aktivitet?
Avatar billede christian-s Nybegynder
20. maj 2006 - 12:17 #2
Jeg ved ikke helt, om jeg forstår dig korrekt - men jeg gætter! :-)
I tabellen tabel_link angiver jeg hvilke aktiviteter den enkelte forening varetager. Samtidig kan der evt. være en kontaktperson angivet.

Jeg skal i koden hvor jeg skal have opdateret tabel_link finde ud af, om aktivititeten eksisterer i tabel_link (under den pågældende forening). Derefter skal checkboxenes aktiviteter så tilføjes, slettes eller ikke røres ved.
Avatar billede jakobdo Ekspert
20. maj 2006 - 12:39 #3
Jeg har ogås nogle gange svært ved at forstå mig selv :o)
Men jeg forstod ikke helt din tabel struktur.

Kan du prøve lidt mere grundigt at forklare hvad du ønsker der skal ske.
Det kan jo være en ny tabelstruktur måske er vejen frem.
Avatar billede Slettet bruger
20. maj 2006 - 13:34 #4
Du skal vænne dig til at bruge array indices 'rigtigt' - de skal quotes, ellers vil PHP i første forsøg håbe på at det er en konstant - og det er utilsigtet:

echo "<input type=\"checkbox\" name=\"aktivitet[]\" value=\"".$data['id']."\"$checked />".$data['aktivitet']."<br />\n";
Avatar billede jakobdo Ekspert
20. maj 2006 - 21:11 #5
Eller bare:
echo '<input type="checkbox" name="aktivitet[]" value="'.$data['id'].'" $checked />'.$data['aktivitet'].'<br />'."\n";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester