Momenteel ben ik een feedback systeem aan het maken en nu was ik ergens mee bezig waar ik niet uit kom.
Ik heb een script waarbij in de eerste <select> ik een keuze kan maken uit een categorie, vervolgens in de volgende <select> kan er een vraag worden geselecteerd.
<script type="text/javascript">
function fetch_select(val)
{
$.ajax({
type: 'post',
url: 'haal_vragen.php',
data: {
get_option:val
},
success: function (response) {
document.getElementById("new_select").innerHTML=response;
}
});
}
</script>
<td><select onchange="fetch_select(this.value);">
<option>Selecteer Categorie</option>
<?php
$select=mysqli_query($db, "select Categorie from Vragen group by Categorie");
while($row=mysqli_fetch_array($select))
{
echo "<option>".$row['Categorie']."</option>";
}
?>
</select></td>
<td><select id="new_select" name="Vraag[]">
</select></td>
Daarbij de AJAX haal_vragen.php
<?php
if(isset($_POST['get_option']))
{
include('mysql.inc.php');
$Categorie = $_POST['get_option'];
$find=mysqli_query($db, "select Vraag from Vragen where Categorie='$Categorie'");
while($row=mysqli_fetch_array($find))
{
echo "<option>".$row['Vraag']."</option>";
}
exit;
}
?>
Dit werkt allemaal perfect, maar nu komt het ik wil dit ook werkend hebben met een addrow functie.
<script type="text/javascript" src="includes/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function add_row()
{
$rowno=$("#vragenlijst tr").length;
$rowno=$rowno+1;
$("#vragenlijst tr:last").after("<tr id='row"+$rowno+"'><td><select onchange='fetch_select(this.value);' name='Competentie[]'><option>Selecteer competentie</option><option>Interpersoonlijk</option><option>Pedagogisch</option><option>Vakdidactisch</option></select></td><td><input type='text' name='Vraag[]' placeholder='Enter Age'></td><td><input type='text' name='Type[]' placeholder='Enter Job'></td><td><input type='button' value='DELETE' onclick=delete_row('row"+$rowno+"')></td></tr>");
}
function delete_row(rowno)
{
$('#'+rowno).remove();
}
</script>
<table id="vragenlijst">
<tr id="row1">
<td><select onchange="fetch_select(this.value);">
<option>Selecteer categorie/option>
<?php
$select=mysqli_query($db, "select Categorie from Vragen group by Categorie");
while($row=mysqli_fetch_array($select))
{
echo "<option>".$row['Categorie']."</option>";
}
?>
</select></td>
<td><select id="new_select" name="Vraag[]">
</select></td>
<td><input type="text" name="Type[]"></td>
</tr>
</table>
<input type="button" onclick="add_row();" value="ADD ROW">
De script op zichzelf werkt wel. Nu zijn er twee dingen als ik de add row combineer met de select categorie script:
<select onchange="fetch_select(this.value);">
<option>Selecteer Categorie</option>
<?php
$select=mysqli_query($db, "select Categorie from Vragen group by Categorie");
while($row=mysqli_fetch_array($select))
{
echo "<option>".$row['Categorie']."</option>";
}
?>
</select>In de het volgende te combineren
$("#vragenlijst tr:last").after("<tr id='row"+$rowno+"'><td><select onchange='fetch_select(this.value);' name='Competentie[]'><option>Selecteer competentie</option><option>Interpersoonlijk</option><option>Pedagogisch</option><option>Vakdidactisch</option></select></td><td><input type='text' name='Vraag[]' placeholder='Enter Age'></td><td><input type='text' name='Type[]' placeholder='Enter Job'></td><td><input type='button' value='DELETE' onclick=delete_row('row"+$rowno+"')></td></tr>");
}Dan werkt de add row functie niet meer ik denk vanwege de php die erin zit verwerkt.
En de laatste als ik van de eerste een gewone <select> maakt dan pakt de add row hem wel, maar dan past hij alleen de eerste rij aan en uiteraard met hetzelfde probleem als die hierboven lukt dat niet met combineren.
Iemand hier een tip of een script voor? Dan kan ik weer verder, kom er niet uit.
Mijn doel: In de eerste <select> wordt een categorie geselecteerd, in de tweede select worden de vragen uit de database gehaald die bij de categorie horen en dan als laatste dit moet werken met de add row functie =D
Met vriendelijke groet,
Mark