如何使用JQuery Repeater和php

时间:2018-11-01 17:14:05

标签: php jquery html mysqli jquery.repeater

我一直想让JQuery Repeater插件能够从数据库中获取数据。我已经可以进行将数据插入数据库的工作了,但是我似乎并没有检索插入的数据来对其进行编辑。

这是我在php和html中拥有的代码。

<div id="repeater">
            <div class="repeater-heading" align="left">
                <a role="button" class="btn btn-info repeater-add-btn" ><span class="glyphicon glyphicon-plus">&nbsp;</span>Add Transactional Impact</a>
            </div>

            <div class="clearfix"></div>
            <br>

            <div class="items" data-group="impacts">
                <div class="item-content">
                    <div class="form-group">
                        <?php                                   
                        $query_raw_num = "SELECT * FROM revenue_impact_number WHERE revenue_impact_id='".$id."' ";
                        $results = $mysqli->query($query_raw_num);

                        while($impacts = $results->fetch_assoc()){
                        ?>
                        <div class="row" data-repeater-item>
                            <div class="col-md-2">
                                <label>Region:</label>
                                <select data-skip-name="true" data-name="region_id[]" id="region_id" class="form-control">
                                    <option value="">-- Select --</option>
                                    <?php                                   
                                    $query_raw = "SELECT regions_id, regions_name FROM regions ";
                                    $result = $mysqli->query($query_raw);

                                    while($row = $result->fetch_assoc()){
                                    ?>              
                                    <option value="<?php echo $row['regions_id']; ?>" <?php echo ($row['regions_id']==$impacts['region_id'] ? 'selected' : ''); ?> ><?php echo $row['regions_name']; ?></option>
                                    <?php } ?>
                                </select>
                            </div>
                            <div class="col-md-2">
                                <label>Product:</label>
                                <select data-skip-name="true" data-name="product_id[]" id="product_id" class="form-control">
                                    <option value="">-- Select --</option>
                                    <?php                                   
                                    $query_raw_products = "SELECT product_id, product_name FROM products ";
                                    $result_products = $mysqli->query($query_raw_products);

                                    while($products = $result_products->fetch_assoc()){
                                    ?>              
                                    <option value="<?php echo $products['product_id']; ?>" <?php echo ($products['product_id']==$impacts['product_id'] ? 'selected' : ''); ?> ><?php echo $products['product_name']; ?></option>
                                    <?php } ?>
                                </select>
                            </div>
                            <div class="col-md-2">
                                <label>Impact:</label>
                                <input type="text" data-skip-name="true" data-name="impact_number[]" id="impact" value="<?php echo $impacts['impact_number'];?>" class="form-control" style="width:200px;"/>
                            </div>
                            <div class="col-md-2">
                                <label>Expected:</label>
                                <input type="text" data-skip-name="true" data-name="expected[]" id="expected" value="<?php echo $impacts['expected'];?>" class="form-control" style="width:200px;"/>
                            </div>

                            <div class="col-md-2" style="margin-top:24px;" align="center">
                                <a id="remove-btn" role="button" onclick="$(this).parents('.item-content').remove()" class="btn btn-danger" ><span class="glyphicon glyphicon-trash">&nbsp;</span>Remove</a>
                            </div>
                        </div>
                        <?php } ?>
                    </div>
                </div>
            </div>

        </di>

这是我正在使用的脚本功能。

$(function(){
$('#repeater').createRepeater();

});

首次加载页面时,所有内容都会成功显示。见下图

Data displayed correctly when page load for the first time

我遇到的问题是,当我尝试添加新的字段组时,它再次显示整个组,而当我单击“删除”按钮时,它也在删除整个数据组。参见下图。

Adding the whole data group

1 个答案:

答案 0 :(得分:0)

在编辑时检索现有数据时,中继器代码存在问题。在“ repeater.js”文件的下面注释行

    /*
    if (key == 0) {
        items.remove();
        addItem(newItem, key);
    }
    */