xmlhttprequest没有将变量从javascript传递给php

时间:2014-03-28 19:15:10

标签: javascript php xmlhttprequest

我在D3中制作了一张互动地图。我将所有数据存储在MySQL数据库中。由于用户可以选择年份来查看所有数据,因此我必须将年份传递给服务器端(php)以查询特定年份的数据。

我不知道D3.js中的特定功能来帮助我们将变量传递给php,因此我使用XMLHTTP将信息发送给php。
我的javascript:

a = "ARGGDP"
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "database/allcountry.php?a=a", true);
xmlHttp.addEventListener("load", ajaxCallback, false);
xmlHttp.send(null);

function ajaxCallback(event){
    alert( "loaded");
}

我的PHP

标题("内容类型:application / json");

$a = $_GET['a'];
$username = "root"; 

然而,它显示"未定义索引:a"。有什么想法我应该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:1)

你错过了一个;你的var" a"并且没有将var添加到您的网址。

a = "ARGGDP";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "database/allcountry.php?a="+a, true);
xmlHttp.addEventListener("load", ajaxCallback, false);
xmlHttp.send();

function ajaxCallback(event){
    alert( "loaded");
}

PHP

echo "<pre>";
print_r($_GET);
echo "</pre>";

答案 1 :(得分:1)

您可以使用以下内容;

function sendAjax(data) {
  var xmlhttp;
  if (window.XMLHttpRequest) {
    xmlhttp=new XMLHttpRequest();
  } else {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      alert("loaded")
    }
  }
  xmlhttp.open("GET","database/allcountry.php?a=" + data,true);
  xmlhttp.send();
}

sendAjax("ARGGDP");

在php中

$a = $_GET['a'];
echo $a;

答案 2 :(得分:0)

您的ajax请求正常,undefined index: a通知表示$_GET变量没有密钥“a”,您可能在代码中的某处修改$ _GET吗?