Door
Roy B
op 23-07-2020 00:18
gewijzigd op 23-07-2020 00:20
4.253 views
Hallo,
Ik moet voor een website een dropdown vullen op basis van de geselecteerde waarde van de eerste dropdown op basis van PHP en MySQL. Nu heb ik in het verleden wel eens met deze talen gewerkt, maar kom er achter dat er de laatste tijd veel is veranderd.... :/
Nu heb ik al wat gevonden en getest. Het werkt en is een mooi beginpunt.
Het probleem waar ik nu tegen aanloop is het volgende:
Hoe kan ik aan 'huidig_id' meerdere waardes toekennen in de tabel 'isolatie_renovatie'?
Bij de eerste dropdown moet er bij de keus "geen isolatie", alle opties in de tweede dropdown worden weergegeven. Bij de andere keuzes moet exact dezelfde keuze in de tweede komen te staan.
Dus:
1e dropdown Geen isolatie -> alle 4 opties in 2e dropdown (Geen isolatie, Goede isolatie, Betere isolatie, Beste isolatie)
1e dropdown Goede isolatie -> 1 optie in 2e dropdown (Goede isolatie)
1e dropdown Betere isolatie -> 1 optie in 2e dropdown (Betere isolatie)
1e dropdown Beste isolatie -> 1 optie in 2e dropdown (Beste isolatie)
Niet getest hoor dus misschien dat het niet klopt, maar zoiets zou ik eens proberen. Met de alert even testen of er überhaupt wel iets door komt aan id.
<?php
include('db.php');
if($_POST['id']){
$id=$_POST['id'];
if($id==0){
echo "<option>Selecteer isolatie</option>";
}else{
$sql = mysqli_query($con,"SELECT * FROM `isolatie` WHERE
(SELECT `alle_opties` FROM `isolatie` WHERE `id` = $id) = 1 or `id`= $id");
while($row = mysqli_fetch_array($sql)){
echo '<option value="'.$row['id'].'">'.$row['status'].'</option>';
}
}
}
?>
[size=xsmall]Toevoeging op 24/07/2020 16:14:31:[/size]
Ramon van Dongen op 24/07/2020 14:43:36
Ik vind het zelf altijd handiger om met ajax de gehele 2de selectbox te creëeren (in jouw geval dus in je ajax.php bestand), dus inclusief de <select> en </select> en niet alleen de <option>'s
Heb ik mee zitten proberen, maar is me niet gelukt om het goed werkend te krijgen.
Loop nog tegen een ander probleempje aan waar ik niet uit kom. Zal vast wel niet ingewikkeld zijn maar ik krijg het niet voor elkaar.
De dropdowns werken zoals het hoort. Nu heb ik aan de tabel nog een waarde toegevoegd, de indexwaarde. Elke isolatiestatus heeft een indexwaarde. Deze indexwaarde wil ik gebruiken om de isolatie waarde te berekenen.
Stel dat de isolatie waarde 3,0 is bij geen isolatie.
Geen isolatie heeft indexwaarde van 0,0 -> isolatiewaarde = 3,0 - 0,0
Goede isolatie heeft indexwaarde van 0,5 -> isolatiewaarde = 3,0 - 0,5
Betere isolatie heeft indexwaarde van 0,7 -> isolatiewaarde = 3,0 - 0,7
Beste isolatie heeft indexwaarde van 0,9 -> isolatiewaarde = 3,0 - 0,9
De (nieuwe) isolatiewaarde wil ik weergeven op de pagina.
Deze indexwaarde moet dan uit de 2e dropdown komen en daar loop ik op vast. De indexwaarde weergegeven in de dropdown is geen probleem, maar nu deze waarde nog uitlezen uit deze dropdown zodat ik deze kan gebruiken om de nieuwe isolatiewaarde te berekenen.
Als ik in de 1e dropdown "geen isolatie" kies dan krijg ik in de 2e dropdown 4 opties.
Standaard staat deze op "geen isolatie | 0,00". De waarde 0,00 komt niet standaard in het textveldje te staan. Verander ik het naar 1 van de 3 andere dan komt die waarde wel erin te staan. Verander ik het weer naar "geen isolatie | 0,00" dan komt er wel netjes 0,00 in het textveld te staan.
Kies ik in de 1e dropdown een andere waarde, dan veranderd de 2e dropdown netjes mee. De waarde ervan komt niet in het textveld.
Dus de standaardwaarde die in de 2e dropdown komt wordt niet gelezen. Pas als daar een verandering is dan wordt het in het textveld gezet.