2015-03-12 2 views
-3

Я использую google maps api, чтобы получить местоположение пользователя. Он возвращает данные в переменной js. Теперь я хочу преобразовать эту переменную js в php. Я использовал форму представления для преобразования переменной, но проблема в том, что форма не отправляется автоматически.форма не отправлена ​​автоматически

<?php 
     if(isset($_POST['loc'])){ 
      ?> 
     <script>alert("i am post!"); 
     </script> 
    <?php 
      echo "i am post"; 
      $country_name = $_POST['abc']; 
      echo $country_name."i am php"; 
     } 
     else{ 
      echo "i am php else"; 
    ?> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript"> 
     var geocoder; 
     var country_name; 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(successFunction, errorFunction); 
     } 
     //Get the latitude and the longitude; 
     function successFunction(position) { 
      var lat = position.coords.latitude; 
      var lng = position.coords.longitude; 
      codeLatLng(lat, lng) 
     } 

     function errorFunction() { 
      alert("Geocoder failed"); 
     } 

     function initialize() { 
      geocoder = new google.maps.Geocoder(); 



     } 

     function codeLatLng(lat, lng) { 

      var latlng = new google.maps.LatLng(lat, lng); 
      geocoder.geocode({ 'latLng': latlng }, function (results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
        //console.log(results) 
        if (results[1]) { 
         //formatted address 
         // alert(results[0].formatted_address) 
         //find country name 
         for (var i = 0; i < results[0].address_components.length; i++) { 
          for (var b = 0; b < results[0].address_components[i].types.length; b++) { 

           //there are different types that might hold a city admin_area_lvl_1 usually does in come cases looking for sublocality type will be more appropriate 
           if (results[0].address_components[i].types[b] == "country") { 
            //this is the object you are looking for 
            city = results[0].address_components[i]; 
            break; 
           } 
          } 
         } 
         //city data 
         alert(city.short_name + " " + city.long_name) 
         country_name = city.short_name; 
         document.forms[0].abc.value = country_name; 
         $("#def").submit(); 
         document.write("form is submited"); 

        } else { 
         alert("No results found"); 
        } 
       } else { 
        alert("Geocoder failed due to: " + status); 
       } 
      }); 
     } 
    </script> 

    <body onload="initialize()"> 
     <form id="def" action="Db1.php" method="POST"> 
      <input name="abc" id="abc" value="" /> 
      <input type="submit" name="loc" /> 
     </form> 
    </body> 
    <script> 
     $(function() { 
      alert(" i am jquery function"); 
      window.onload(function() { 
       $("#def").submit(); 
      }); 

     }); 
    </script> 
    <?php 

     } 
    ?> 
+0

какой ад -2 и никакой ответ :( – Ayesha

+0

вы забыли включить 'jquery' .. пожалуйста, включите его перед включением google maps js –

+0

' $ (function() 'fail без jquery. : P –

ответ

-1

заменить ваш скрипт

<script> 
     $(function() { 
      alert(" i am jquery function"); 
      window.onload(function() { 
       $("#def").submit(); 
      }); 

     }); 
    </script> 

с этим

 <script> 
       document.getElementById('def').submit(); 
    </script> 

EDIT если вы хотите отправить с помощью JQuery, чем сделать это

$("#def")[0].submit(); 
+0

downvote без причины ?? Я пробовал этот код и он работает ... со всем сценарием OP –

+0

Я не ДВ, но я могу понять, почему это было. Тестирование с помощью функции jQuery (я обменял «alert()» на 'console.log()') и убедился, что вход имеет значение, и никаких проблем с представлением не было. –

+0

Возможно, проблема в том, что она использует две вложенные функции автонагрузки вместе '$ (function() {и window.onload (function() {' .... –

Смежные вопросы