Cześć,
znowu potrzebuję waszej pomocy. Korzystam ze skryptu javascript o nazwie multirow, który pozwala dynamicznie dodawać/usuwać wiersze formularza:
$(document).ready(function(){
var count = 0;
$('#add').click(function(){
count = document.getElementById("product_table_rows").rows.length;
var html_code = "
<tr id='row"+(count+1)+"'>";
html_code += '
<td><input type="text" id="ean" name="ean['+count+']" class="form-control ean-filter" /></td>';
html_code += '
<td><input type="text" id="quantity" name="quantity['+count+']" class="form-control qty-filter" required/></td>';
html_code += '
<td><textarea rows="2" cols="50" id="product_description" name="product_description['+count+']" class="form-control" /></textarea></td>';
html_code += '
<td><div class="input-group"><input type="text" id="price" name="price['+count+']" class="form-control price-filter"/><div class="input-group-addon">zł
</div></div></td>';
html_code += '
<td><select id="category_id" name="category_id['+count+']" class="form-control" required></select></td></td>';
html_code += "
<td><button type='button' name='remove' data-row='row"+(count+1)+"' class='btn btn-danger btn-xs remove'><span class='glyphicon glyphicon-minus'></span></button></td>";
$('#product_table').append(html_code);
$.getScript("js/input_filters.js",function(){
Inputs_filters();
});
});
$(document).on('click', '.remove', function(){
var delete_row = $(this).data("row");
$('#' + delete_row).remove();
});
});
W formularzu korzystam z pola rozwijanego SELECT w którym powinny znajdować się pogrupowane opcje pobrane z bazy danych. W innych formularzach opcje i grupy opcji pobieram w formie tablicy z bazy danych i wyświetlam je poniższym kodem:
<?php
echo "<option hidden selected disabled>Wybierz kategorię</option>"; if ($categories_list->num_rows > 0) {
while($row = $categories_list->fetch_assoc()) {
$group[$row['pc_group_name']][] = $row;
}
foreach ($group as $key => $values){
echo '<optgroup label="'.$key.'">'; foreach ($values as $value)
{
if ($value['pc_option_type'] == 0) {
echo '<option value="'.$value['pc_option_value'].'">'.$value['pc_option_name'].'</option>'; }
}
}
} else {}
?>
Problem pojawia się gdy to samo mam wykonać w skrypcie javascript. Wyczytałem, że otrzymaną z bazy danych tablicę muszę przetworzyć na format json co wykonuję w pliku manage_categories.php:
<?php
include_once 'config/Database.php';
include_once 'class/Categories.php';
$database = new Database();
$db = $database->getConnection();
$categories = new Categories($db);
$categories_data = $categories->getProductsCategories();
while($categories_row = $categories_data->fetch_assoc()) {
$categories_list[] = $categories_row;
}
$categories_list_json = json_encode($categories_list);
echo $categories_list_json;
?>
Teraz jak taką tablicę przetworzyć na opcje i grupy opcji pola rozwijanego SELECT i jeszcze je wrzucić w skrypt Multirow?