Door
Donald Boers
op 11-12-2015 09:05
gewijzigd op 11-12-2015 09:07
2.059 views
Op een website voor scooter onderdelen heb ik op de update pagina voor een onderdeel 5 chekboxen staan met modellen waar dit onderdeel voor geschikt is (komt uit tafel modellen):
Bij het invoeren van de diversen onderdelen heb ik de modellen waarop een onderdeel past, ook gebruikmakend van checkboxen, ingevoerd in een many-to-many tafel (onderdeel_modellen):
foreach ($model_id as $model)
{
$this->onderdelen->onderdeel_modellen_toevoegen($onderdeel_id, $model);
}
Deze gegevens haal ik vervolgens ten behoeve van de update pagina uit de database:
public function get_onderdeel_modellen($onderdeel_id)
{
$sql = "SELECT *
FROM onderdeel_modellen
WHERE onderdeel_id = ?";
$stmt = $this->pdo->prepare($sql);
$stmt->execute(array($onderdeel_id));
return $stmt->fetchAll();
}
Waar ik nu mee worstel is hoe ik het juiste aantal checkboxen in de bovenstaande loop gechecked krig op basis van de bovenstaande query. Ik heb een aantal dingen geprobeerd zoals:
Je value is nu $model['model_id'], zou dat niet de 'id' van tabel onderdeel_modellen moeten zijn?
Nee alleen de model_id's die in onderdeel_modellen staan en bij het betreffende product horen dienen gecheked te zijn.
Dit is de data in de tafel modellen die ik gebruik voor het genereren van de model checkboxen:
Zou je voor mij eens een opzet van de arrays '$modellen' en '$selected_modellen' kunnen laten zien?
Dan kan ik er even naar kijken.
PS: conventie tip: in het scriptje waar je de input genereert met daarbij of deze selected is of niet, gebruik je veel < ?php. Persoonlijk zou ik alles in 1 < ?php zetten en de input dus printen / echo'en. Dit is on-the-long-run een stuk efficienter omdat de PHP parser niet voor elke regel moet kijken of hij PHP of HTML voorgeschoteld krijgt en opnieuw moet parsen.
Zou je voor mij eens een print_r(); willen doen van de arrays die je in je controller hebt staan? Dan kan ik de situatie iets gemakkelijker nabootsen, dan op wat uitleg afgaan (foutgevoelig, ook van mijn kant) :)
Zou je voor mij eens een print_r(); willen doen van de arrays die je in je controller hebt staan? Dan kan ik de situatie iets gemakkelijker nabootsen, dan op wat uitleg afgaan (foutgevoelig, ook van mijn kant) :)
Hoi Max. Ik ben er uit. In de Controller heb ik met de resultaten van de selected_modellen een nieuwe array samengesteld: