2016-10-03 67 views
1

我有我的窗体中的自动完成地址谷歌api文本框,当我选择地址我得到了另一个两个文本框中的经纬度和选定的地址长。在ajax请求中的文本框值在更改或文本框离开

现在,当我选择addreess我想要在我的ajax请求中传递lat和long值,但每次我得到空值。

请帮我走出这个。

<?php 
echo $this->Form->input('from_address', array('required' => false,'label' => false, 'div' => false, 
    'placeholder' => 'Enter from address', 'class' => 'form-control','id' => 'fromaddress')); 
    ?> 

    <?php echo $this->Form->input('from_lat', array('id' => 'fromlat')); ?> 
    <?php echo $this->Form->input('from_long', array('id' => 'fromlong')); ?> 

<script type="text/javascript"> 
$("#fromaddress").on('change', function() { 
    ajaxRequest = $.ajax({ 
    url: '<?php echo Router::url(array("controller" => "Orders", "action" => "searchCourier")); ?>', 
     type: 'POST', 
     data: { 
      frmlat: $("#fromlat").val(), 
      frmlong: $("#fromlong").val() 
     }, 
     dataType: "html", 
     success: function(response) { 
      $("#courier_locations").html(response); 
     }, 
     complete: function() { 
      $('.spinicon').hide(); 
     } 
    }); 
}); 

</script> 
+0

我认为价值通过之前存储到选定的文本框。在传递给ajax请求之前,请检查并打印该值以进行调试 –

+0

您确定您的元素ID已正确创建吗?同时把你的功能放在jQuery()。ready(function() –

+0

我认为...所以有任何解决方案来解决... bcoz我想通过从谷歌地址选择地址后传递值... –

回答

-1

,你可以打电话给你的lattitude和langitude下拉的变化AJAX

$("#fromlat").on('change', function() { 
ajaxRequest = $.ajax({ 
url: '<?php echo Router::url(array("controller" => "Orders", "action" => "searchCourier")); ?>', 
    type: 'POST', 
    data: { 
     frmlat: $("#fromlat").val(), 
     frmlong: $("#fromlong").val() 
    }, 
    dataType: "html", 
    success: function(response) { 
     $("#courier_locations").html(response); 
    }, 
    complete: function() { 
     $('.spinicon').hide(); 
    } 
}); 

});

+0

没有shahrukh这是不可能的..bcoz拉特和长是隐藏领域...从形式... –

+0

你可以触发一个onchange事件隐藏字段,或者你可以在一段时间之后使用settimeout函数调用ajax,比如setTimeout(这里是ajax调用,这里需要的时间和朗诵下拉所需的时间); – Shahrukh