jqueryerror";这";未定义$.post到php页面的

jqueryerror";这";未定义$.post到php页面的,jquery,.post,Jquery,.post,我对以下代码有相同的问题: function getpgisdata() { sdata = ads.d; var send = $.post("csqcity.php", { variable:sdata }, function pgisquery(data) { alert("success"); }) .success(function() { alert("second success"); }) .e

我对以下代码有相同的问题:

function getpgisdata() {
    sdata = ads.d;
    var send = $.post("csqcity.php", { variable:sdata }, function pgisquery(data) {
          alert("success");
       })
         .success(function() { alert("second success"); })
         .error(function() { alert("error"); })
         .complete(function() { alert("complete"); });
    send.complete(function(){ alert("second complete");
});
该函数由以下函数调用:

<div class="wrapSearch">
    <div>
        <input id="searchTextField" type="text" size="50" placeholder="Enter an address...">
        <input type="submit" name="search" id="search1" onclick="getpgisdata()">
    </div>
 <div class="listWrap" id="listWrap1">
    <ul class="searchList" id="searchList1">
    </ul>
 </div>
与谷歌

Uncaught TypeError: Cannot call method 'lat' of undefined
                                                                %7Bmain,places%7D.js:11 
csqcity.php包含:

index.html中引用了以下库:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
<link rel="stylesheet" type="text/css" href="http://dev.openlayers.org/releases/OpenLayers-2.12/theme/default/style.css"/>
<link rel="stylesheet" type="text/css" href="http://dev.openlayers.org/releases/OpenLayers-2.12/examples/style.css"/>
<script type="text/javascript" src="http://dev.openlayers.org/releases/OpenLayers-2.12/OpenLayers.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>

有人知道吗?提前谢谢你

在我检查了“this”值之后,我设法让代码正常工作。在我的代码中,这是DOM文档。首先,我将$.post包含在触发它的HTML input submit元素中,将this作为HTML输入,并使用自动完成器的关联输入文本的值。我犯的另一个错误是将所需数据存储在全局变量中,这触发了“this is undefined”错误。所以我调用了与HTML输入提交关联的HTML输入文本(在我的例子中就是这样)

该函数的代码为:

  $(document).ready(function () {
      $('#search1').click(function(){
           sdata = $('#searchTextField').val();
        if( sdata == undefined || sdata == 'Enter an address...' || sdata < 4 ){
        alert('Please insert or choose an address to proceed.');
        } else {
      $.post(
            'csqcity.php',
            { 'variable' : sdata },
            function( r_data ){
                alert(r_data);
            }       
        );
        }
      });
  });
$(文档).ready(函数(){
$('#search1')。单击(函数(){
sdata=$('#searchTextField').val();
如果(sdata==未定义| | sdata=='输入地址…'| | sdata<4){
警报('请插入或选择要继续的地址');
}否则{
美元邮政(
“csqcity.php”,
{'variable':sdata},
函数(r_数据){
警报(r_数据);
}       
);
}
});
});
美元的帖子成功了


谢谢你的建议!他们帮助我理解了这个问题。

首先,
成功
错误和
完成
需要替换为
完成
失败和
始终
,以防止将来升级jQuery时出现问题。
ads.d
包含什么?通常,“这”错误与从对象原型外部调用方法有关。因此,“窗口”就是“这个”。ads是一个定义为全局的变量,我将它附加在d上,它在initialize()函数中获取值,因此我可以将它传递给getpgisdata()函数该函数附加到输入表单的Submit按钮上。输入表单的值是ads.donclick我运行函数getpgisdata,它向php页面发送请求。这可能是输入表单,我应该附加一个事件来触发post?
function initialize() {
    input = document.getElementById('searchTextField');
    var options = {
        componentRestrictions: {country: 'us'},
        //componentrestrictions: {administrative_area2: 'tx'}
    };
    autocomplete = new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(autocomplete, 'place_changed', function() {
      //var place = autocomplete.getPlace();
      var place = autocomplete.getPlace();
      ads.d = place.geometry.location;
    });
  }
  google.maps.event.addDomListener(window, 'load', initialize);
  $(document).ready(function () {
      $('#search1').click(function(){
           sdata = $('#searchTextField').val();
        if( sdata == undefined || sdata == 'Enter an address...' || sdata < 4 ){
        alert('Please insert or choose an address to proceed.');
        } else {
      $.post(
            'csqcity.php',
            { 'variable' : sdata },
            function( r_data ){
                alert(r_data);
            }       
        );
        }
      });
  });