انتقال مقدار

mona.joon

Member
سلام
من يه كد جاوا اسكريپت دارم ميخوام 2 تا متغير از اين كد بوسيله يك hidden فرم به صفحه ديگه انتقال بدم
PHP:
function initialize() {
                var latLng = new google.maps.LatLng(35.711585,51.406928);
متغيري كه ميخوام انتقال بدم همين LatLng هستند .
من به اين صورت امتحان كردم ولي نشد.
PHP:
<input type="hidden" name="gmap" value="initialize(latLng)">
حتما ميخوام كه اين مقدار ها بعد از زدن submit از فرم منتقل بشن و توي ديتابيس ثبت بشن.
توي اين برنامه 2تا فانكشن آماده داره كه احتمالا براي انتقال همين مقادير آماده شده ولي مقدار دهي نشده ولي من بلد نيستم ازش استفاده كنم.
PHP:
function updateMarkerStatus(str) {
                document.getElementById('markerStatus').innerHTML = str;
            }

PHP:
function updateMarkerPosition(latLng) {
                document.getElementById('info').innerHTML = [
                    latLng.lat(),
                    latLng.lng()
                ].join(', ');
            }

            function updateMarkerAddress(str) {
                document.getElementById('address').innerHTML = str;
            }
 

farik

Well-Known Member
با سلام..
واضحه که نمیشه..شما باید مقدار دهی رو با جاوا اسکریپت انجام بدین....بعد از تعریف عناصر فرم باید در تگ script تابع initialize(latLng) رو فراخوانی کنین..
موفق باشید..
 

mona.joon

Member
با سلام..
واضحه که نمیشه..شما باید مقدار دهی رو با جاوا اسکریپت انجام بدین....بعد از تعریف عناصر فرم باید در تگ script تابع initialize(latlng) رو فراخوانی کنین..
موفق باشید..
درست متوجه نشدم منظورتونو ميشه يه مثال بزنيد روي همين اسكريپت؟
 

farik

Well-Known Member
با سلام..
من تو پست قبل فقط به شما گفتم مقددار دهی رو غلطط انجام دادین..اما الان که نگاه میکنم میبینم شما میخواین یک شی رو بفرستین...خوب واضحه که یک شی رو نمیشه مستقیما ارسال کرد...شماباید هر کدوم از خصوصیاتش رو بریزین داخل یک فیلد مخفی و بعد سندش کنین..که تا اونجا که فهمیدم شما فقط latLng.lat(),latLng.lng() رو لازم دارین..
خوب شما باید با :document.getElementById('id').value مقدار رو تو یک input بریزین.بعد هم فرم رو سابمیت کنین..
در ضمن چون کدها رو کامل نگذاشتین نمیتونم مثال بزنم..کدها رو کامل رو بزارین تا بشه بیشتر راهنمایی کرد..
موفق باشید..
 

mona.joon

Member
اين كل كد هست كه كارش اينه كه نقشه گوگل و نشون ميده كاربر ميتونه با ماركر يه نقطه رو انتخاب كنه و بعد از زدن submit بايد مختصات اون نقطه رو به ديتابيس بفرستم
HTML:
<html>
    <head>
        <title></title>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">
            var geocoder = new google.maps.Geocoder();

            function geocodePosition(pos) {
                geocoder.geocode({
                    latLng: pos
                }, function(responses) {
                    if (responses && responses.length > 0) {
                        updateMarkerAddress(responses[0].formatted_address);
                    } else {
                        updateMarkerAddress('Cannot determine address at this location.');
                    }
                });
            }

            function updateMarkerStatus(str) {
                document.getElementById('markerStatus').innerHTML = str;
            }

            function updateMarkerPosition(latLng) {
                document.getElementById('info').innerHTML = [
                    latLng.lat(),
                    latLng.lng()
                ].join(', ');
            }

            function updateMarkerAddress(str) {
                document.getElementById('address').innerHTML = str;
            }

            function initialize() {
                var latLng = new google.maps.LatLng(35.711585,51.406928);
                var map = new google.maps.Map(document.getElementById('mapCanvas'), {
                    zoom: 15,
                    center: latLng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                });
                var marker = new google.maps.Marker({
                    position: latLng,
                    title: 'Point A',
                    map: map,
                    draggable: true
                });

                // Update current position info.
                updateMarkerPosition(latLng);
                geocodePosition(latLng);

                // Add dragging event listeners.
                google.maps.event.addListener(marker, 'dragstart', function() {
                    updateMarkerAddress('Dragging...');
                });

                google.maps.event.addListener(marker, 'drag', function() {
                    updateMarkerStatus('Dragging...');
                    updateMarkerPosition(marker.getPosition());
                });

                google.maps.event.addListener(marker, 'dragend', function() {
                    updateMarkerStatus('Drag ended');
                    geocodePosition(marker.getPosition());
                });
            }

            // Onload handler to fire off the app.
            google.maps.event.addDomListener(window, 'load', initialize);
        </script>
        <style type="text/css">
            #mapCanvas {
                width: 500px;
                height: 400px;
                float: left;
            }
            #infoPanel {
                float: left;
                margin-left: 10px;
            }
            #infoPanel div {
                margin-bottom: 5px;
            }
        </style>
    </head>
    <body>
        <div id="mapCanvas"></div>
        <div id="infoPanel">
            <b>Marker status:</b>
            <div id="markerStatus"><i>Click and drag the marker.</i></div>
            <b>Current position:</b>
            <div id="info"></div>
            <b>Closest matching address:</b>
            <div id="address"></div>
        </div>
    </body>
</html>

به اينصورت هم كه شما گفتيد مقدار رو ارسال كردم كه نشد
HTML:
document.getElementById('lat').value=latLng.lat();
               document.getElementById('lng').value=latLng.lng();
اين 2 خط بالا رو توي تگ هد قبل از بسته شدن آخرين { فانكشن initialize() قرار دادم ولي چيزي ارسال نشد.
بيرون از فانكشن هم گذاشتم ولي بازم نشد
input هاي هيدنم هم به اين شكله
HTML:
<input type="hidden" name="lat" value="" id="lat">
                <input type="hidden" name="lng" value="" id="lng">
هر جا رو اشتباه نوشتم بفرمائيد .
مرسي:rose:
 

farik

Well-Known Member
با سلام..
اینم از کد اصلاح شده..:
کد:
<html>
    <head>
        <title></title>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">
            var geocoder = new google.maps.Geocoder();

            function geocodePosition(pos) {
                geocoder.geocode({
                    latLng: pos
                }, function(responses) {
                    if (responses && responses.length > 0) {
                        updateMarkerAddress(responses[0].formatted_address);
                    } else {
                        updateMarkerAddress('Cannot determine address at this location.');
                    }
                });
            }

            function updateMarkerStatus(str) {
                document.getElementById('markerStatus').innerHTML = str;
            }

            function updateMarkerPosition(latLng) {
            		addr=[
                    latLng.lat(),
                    latLng.lng()
                ].join(', ');
                document.getElementById('info').innerHTML = addr;
                document.getElementById('target').value=addr;
            }

            function updateMarkerAddress(str) {
                document.getElementById('address').innerHTML = str;
            }

            function initialize() {
                var latLng = new google.maps.LatLng(35.711585,51.406928);
                var map = new google.maps.Map(document.getElementById('mapCanvas'), {
                    zoom: 15,
                    center: latLng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                });
                var marker = new google.maps.Marker({
                    position: latLng,
                    title: 'Point A',
                    map: map,
                    draggable: true
                });

                // Update current position info.
                updateMarkerPosition(latLng);
                geocodePosition(latLng);

                // Add dragging event listeners.
                google.maps.event.addListener(marker, 'dragstart', function() {
                    updateMarkerAddress('Dragging...');
                });

                google.maps.event.addListener(marker, 'drag', function() {
                    updateMarkerStatus('Dragging...');
                    updateMarkerPosition(marker.getPosition());
                });

                google.maps.event.addListener(marker, 'dragend', function() {
                    updateMarkerStatus('Drag ended');
                    geocodePosition(marker.getPosition());
                });
            }

            // Onload handler to fire off the app.
            google.maps.event.addDomListener(window, 'load', initialize);
        </script>
        <style type="text/css">
            #mapCanvas {
                width: 500px;
                height: 400px;
                float: left;
            }
            #infoPanel {
                float: left;
                margin-left: 10px;
            }
            #infoPanel div {
                margin-bottom: 5px;
            }
        </style>
    </head>
    <body>
        <div id="mapCanvas"></div>
        <div id="infoPanel">
            <b>Marker status:</b>
            <div id="markerStatus"><i>Click and drag the marker.</i></div>
            <b>Current position:</b>
            <div id="info"></div>
            <b>Closest matching address:</b>
            <div id="address"></div>
        </div>
        <form action="test.php" >
        <input type="hidden" id="target">
        <input type="submit" value="Submit">
    </body>
</html>
موفق باشید..
 

جدیدترین ارسال ها

بالا