无法将变量从javascript传递到PHP并返回

时间:2014-11-10 18:36:10

标签: javascript php jquery ajax

我无法让我的AJAX请求工作。我能够从php接收数据,但我无法向其发送数据。

JAVASCRIPT

<script type="text/javascript">
$("#btnSubmit").click(function()    {
$.ajax({
    type: 'POST',
    url: 'checkinfo.php',
    data: { address: "37.187.139.123", port: "26618" },
    dataType: 'json',
    async: true,
    success: function(data)
    {
    alert(data);
    }
});
}); 

PHP

<?php
$SERVER_IP = $_REQUEST['address'];
$SERVER_PORT = $_REQUEST['port'];
$QUERY_PORT = $_REQUEST['port'];

$HEADS = "3D";
$show_max = "unlimited";
$SHOW_FAVICON = "on";

$TITLE = "My fancy Serverpage";
$TITLE_BLOCK_ONE = "General Information";
$TITLE_BLOCK_TWO = "Players";

$ping = json_decode(file_get_contents('http://api.minetools.eu/ping/' . $SERVER_IP . '/' . $SERVER_PORT . ''), true);
$query = json_decode(file_get_contents('http://api.minetools.eu/query/' . $SERVER_IP . '/' . $QUERY_PORT . ''), true);

if(empty($ping['error'])) { 
$version = $ping['version']['name'];
$online = $ping['players']['online'];
$max = $ping['players']['max'];
$motd = $ping['description'];
$favicon = $ping['favicon'];
}

if(empty($query['error'])) {
  $playerlist = $query['Playerlist'];
}

echo $SERVER_IP;

?>

我尝试设置$ SERVER_IP =“1”;并且在点击我的按钮时成功获得警报“1”,因此位置绝对正确。但数据:在某种程度上不想通过,我不知道为什么。我也尝试使用$ _POST而不是$ _REQUEST。

2 个答案:

答案 0 :(得分:0)

如果dataTypejson,则您的数据必须为json_encode

die(json_encode($result));

否则,请使用text/html或其他更适用的内容。您可能会在错误函数中找到PHP响应:

$.ajax({
    type: 'POST',
    url: 'checkinfo.php',
    data: { address: "37.187.139.123", port: "26618" },
    dataType: 'json',
    async: true,
    success: function(data)
    {
    alert(data);
    },
    error: function(response) {
        console.log(error=response);
    }
});

您可以访问JS控制台中的变量error(F12工具)

jQuery $.ajax docs

答案 1 :(得分:0)

我用这种方式: ...... dataType: "json" }).done(function(response){ ...

所以,&#34; json&#34;你不应该使用逗号(,),你需要将地址和端口放在引号中,如'address': variable, 'port': variable

我希望我能帮到你