yii2 клон google maps ввод местоположения - PullRequest
0 голосов
/ 12 февраля 2020

Я использую yii2 framework, я хочу клонировать ввод формы с помощью SelectMapLocationWidget, когда пользователь нажимает кнопку добавления.

<div id="branches-div">
    <?php foreach ($branches as $i => $branch): ?>
        <div class="item panel panel-default"><!-- widgetBody -->
           <div class="panel-heading">
                <div class="pull-right">
                   <button type="button" class="add-item btn btn-success btn-xs"><i class="glyphicon glyphicon-plus"></i></button>
                    <button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
                </div>
                <div class="clearfix"></div>
            </div>
            <div class="panel-body">
                <?php
                        // necessary for update action.
                    if (! $branch->isNewRecord) {
                        echo Html::activeHiddenInput($branch, "[{$i}]id");
                    }
                ?>
                <div class="row">
                    <?= 
                    $form->field($branch, "[{$i}]name")->widget(\kalyabin\maplocation\SelectMapLocationWidget::className(), [
                    'attributeLatitude' => "[{$i}]latitude",
                    'attributeLongitude' => "[{$i}]longitude",
                        'googleMapApiKey' => 'MY_KEY',
                        'draggable' => true,
                        ]); ?>

                </div><!-- .row -->
            </div><!-- panel-body -->
        </div>
    <?php endforeach; ?>
</div> 

, чтобы клонировать введенный мною ввод JS

<?php

$clone_map = "
// branch-0-latitude branch-0-longitude branch-0-name  --> id / for
// Branch[0][longitude]  --> name
$( '.add-item' ).on('click',function() {
    var clonedDiv = $('#branches-div .item').clone(true);
    clonedDiv.removeClass('item');
    //change index of name and coordinates
    counter= ($('.panel')).length;
    clonedDiv.find('[id*=\'branch-0-\']').each(function() {
        var id = $(this).attr('id');
        id = id.replace('0', counter);
        $(this).attr('id',id);
    });
    clonedDiv.find('label[for*=\'branch-0-\']').each(function() {
        var html_for = $(this).attr('for');
        html_for = html_for.replace('0', counter);
        $(this).attr('for',html_for);
    });
    clonedDiv.find('[name*=\'Branch[0]\']').each(function() {
        var name = $(this).attr('name');
        name = name.replace('0', counter);
        $(this).attr('name',name);
    });
    clonedDiv.appendTo('#branches-div')
});";

$this->registerJs($clone_map, yii\web\View::POS_END);
?>

проблема в том, что клоны не работают (гугл карты), они просто копия значений первого ввода. Я не могу переместить маркер или искать место. как я могу решить эту проблему.

...