繁体   English   中英

AJAX xmlhttp.open

[英]AJAX xmlhttp.open

我目前正在尝试使用AJAX从数据库中检索选定的记录。 我有2个文件-browser.php和getrecord.php。

在browser.php中,我使用地理位置javascript获取纬度和经度并将其存储在全局变量中:

browser.php

var numlat;//store latitude
var numlong;//store longitude

function loadrecord(numlat,numlong)
{
  if(numlat=="" || numlong==""){
    document.getElementById("box").innerHTML="";
    return;
  }

  if (window.XMLHttpRequest){
    //code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
  }
  else{
    //code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readystate==4 && xmlhttp.status==200){
      document.getElementById("box").innerHTML=xmlhttp.responseText;
    }
  }

  xmlhttp.open("GET","getrecord.php?q=numlat&r=numlong", true);
  xmlhttp.send();
}

我的主要问题是如何使用numlat和numlong作为2个参数向服务器发送getrecord.php请求? 我将需要使用它们的var numlat和var numlong值在数据库中执行SELECT并将其显示在browser.php中。

getrecord.php

$q = $_GET['q'];//i am trying to get the latitude 
$r = $_GET['r'];//i am trying to get the longitude

//i will need to use $q and $r to do a SELECT in my database.

抱歉,如果这是一个菜鸟问题。

这应该做

xmlhttp.open("GET","getrecord.php?q=" + numlat + "&r=" + numlong, true);
xmlhttp.send();

了解XMLHttpRequest对象如何在JavaScript中工作的细节可能很有价值,但是始终这样做很麻烦。

我建议使用像jQuery这样的JavaScript框架。 这会将您的代码缩短为:

function loadrecord(numlat,numlong)
{
    if(numlat=="" || numlong==""){
        $("#box").html("");
        return;
    }

    $.get("getrecord.php?q="+numlat+"&r="+numlong, function(response_text) {
        $("#box").html(response_text);
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM