簡體   English   中英

在JS中設置樹枝變量-Symfony 3.4-JS

[英]Set twig variable in js - Symfony 3.4 - JS

大家好,我正在創建一種效果很好的表單,但是當我想設置位置的本地化但現在我必須手動設置它時(使用緯度和對數),所以我創建了一個帶有可拖動標記的地圖,當我拖動地圖時標記值lat和lng更改(在控制台中),但現在我想以表格形式設置(因為值在更改但不保存),並且當我更改標記位置時,我想更改緯度和經度值(所以我想將緯度設置為lat,將經度設置為lng)

我的表格html(在symfony的樹枝上):

{% extends 'base.html.twig' %}

{% block body %}
<!-- Left and right buttons -->
<div class="col-8 mx-auto">
    <br/><br/><br/><br/>
    <div class="card">
        <div class="card-header header-elements-inline">
            <h6 class="card-title">Create a place</h6>
        </div>
        <br/>
        <div class="card-body">
            {{ form_start(form) }}
            <div class="form-group">
                <label for="form_username">Content :</label>
                {{ form_widget(form.content) }}
            </div>
            <div class="form-group">
                <label for="form_username">Title:</label>
                {{ form_widget(form.title) }}
            </div>
            <div class="form-group">
                <label for="form_username">Theme:</label>
                {{ form_widget(form.theme) }}
            </div>
            <div class="form-group">
                <label for="form_username">Max users:</label>
                {{ form_widget(form.maxUser) }}
            </div>
            <div class="form-group">
                <label for="form_username">timeLenght:</label>
                {{ form_widget(form.timeLength) }}
            </div>
            <div class="form-group">
                <label for="form_username">Longitude:</label>
                {{ form_widget(form.longitude) }}
            </div>
            <div class="form-group">
                <label for="form_username">Latitude:</label>
                {{ form_widget(form.latitude) }}
            </div>

            <div class="card px-3">
                <br/>
                <!-- Basic map -->
                <div class="map-container" id="map_marker_simple"></div>
                    {% block javascripts_map %}
                    {% endblock %}
                <br/>
                <!-- /basic map -->
            </div>
            <!-- /custom handle -->
        </div>


            <div class="d-flex justify-content-end align-items-center">
                    <button type="submit" class="btn bg-blue" id="create">Submit<i class="icon-paperplane ml-2"></i></button>
                </div>
            {{ form_end(form) }}
        </div>
    </div>
</div>
<!-- /left and right buttons -->
{% endblock %}

和我的部分js形式:

{% extends 'admin/user/new_place.html.twig' %}
{% block javascripts_map %}
<script type="text/javascript">
/* -------------------------------------------------------------------
-----------
*
*  # Basic markers
*
*  Specific JS code additions for maps_google_markers.html page
*
* ---------------------------------------------------------------------------- */


// Setup module
// ------------------------------

var GoogleMapMarkerBasic = function() {


//
// Setup module components
//

// Line chart
    var _googleMapMarkerBasic = function() {
        if (typeof google == 'undefined') {
            console.warn('Warning - Google Maps library is not 
loaded.');
            return;
        }

// Setup map
        function initialize() {

// Define map element
            var map_marker_simple_element = 
document.getElementById('map_marker_simple');

// Set coordinates
            var myLatlng = new google.maps.LatLng(('{{ place.latitude 
}}'), ('{{ place.longitude }}'));

// Options
            var mapOptions = {
                zoom: 10,
                center: myLatlng
            };

// Apply options
            var map = new google.maps.Map(map_marker_simple_element, mapOptions);
            var contentString = 'Marker';

// Add info window
            var infowindow = new google.maps.InfoWindow({
                content: contentString
            });

// Add marker
            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                draggable: true,
                title: ('{{ place.title }}'),
                animation: google.maps.Animation.DROP
            });

            marker.addListener('drag', function() {
                infowindow.open(map,marker);
                var lat = marker.getPosition().lat();
                var lng = marker.getPosition().lng();
                console.log(lat, lng)

            });
// Attach click event
        };

// Initialize map on window load
        google.maps.event.addDomListener(window, 'load', initialize);
    };


    return {
        init: function() {
            _googleMapMarkerBasic();
        }
    }
}();


// Initialize module
// ------------------------------

document.addEventListener('DOMContentLoaded', function() {
    GoogleMapMarkerBasic.init();
});
</script>
{% endblock %}

這是表格的視圖:

在此處輸入圖片說明

感謝所有嘗試回答的人:)

您要做的就是通過javascript更改緯度和經度輸入值。

香草javascript:

document.getElementById("your_latitude_field").value = marker.getPosition().lat();
document.getElementById("your_longitude_field").value = marker.getPosition().lng();

jQuery的:

$("#your_latitude_field").val(marker.getPosition().lat());
$("#your_longitude_field").val(marker.getPosition().lng());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM