Javascript AJAX/JQuery函数未定义

Javascript AJAX/JQuery函数未定义,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在做一个允许用户邀请其他用户的项目。当用户收到邀请时,弹出窗口应该,嗯…弹出窗口…要求他们接受或拒绝。为此,我使用AJAX调用来检查他们是否有任何邀请。这最终将是一个自动调用的函数,但现在我只是用一个简单的按钮和onclick函数来测试它 发生的情况是,AJAX请求转到checkinvestments.php,它检查一个满是用户的数据库表。用简单的英语,checkInvitations.php检查发送过来的“用户”AJAX是否有邀请。如果是,checkInvitations会将信息传递回AJ

我正在做一个允许用户邀请其他用户的项目。当用户收到邀请时,弹出窗口应该,嗯…弹出窗口…要求他们接受或拒绝。为此,我使用AJAX调用来检查他们是否有任何邀请。这最终将是一个自动调用的函数,但现在我只是用一个简单的按钮和onclick函数来测试它

发生的情况是,AJAX请求转到checkinvestments.php,它检查一个满是用户的数据库表。用简单的英语,checkInvitations.php检查发送过来的“用户”AJAX是否有邀请。如果是,checkInvitations会将信息传递回AJAX请求(邀请用户的人的姓名)和(邀请的确认)

不管出于什么原因,尽管我已经导入了JQuery库,但我的函数仍然是未定义的。我不知道为什么会这样

下面是AJAX请求的函数

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript">

function checkForInvitations()
{
    var invitedPlayer = '<?php echo $_SESSION["goodUser"]; ?>' //invitedPlayer = the logged-in user
    console.log("invitedPlayer is: "+invitedPlayer); //variable debug check

$.ajax({
    type: "post",
    url: "checkInvitations.php",
    data: {invitedPlayer: invitedPlayer},

    success: function(data)
    {
        // parse json string to javascript object
        var invitations = JSON.parse(data);
        console.log(invitations); //variable debug check

        // check the invitations to/from
        var invitingPlayer = invitations.invitationFrom;
        var invitationStatus = invitations.invitationStatus;

        //if player has received an invite, pop up a screen asking them to confirm/accept the invite
        if(invitationStatus != 'false')
        {
            clearInterval(checkInvitationIntervalId);
            confirm_yes = confirm(invitingPlayer+" invited you to a game. Accept ?");

        }   
    }
    })
}

函数checkforinvestments()
{
var invitedPlayer=''//invitedPlayer=登录用户
log(“invitedPlayer是:”+invitedPlayer);//变量调试检查
$.ajax({
类型:“post”,
url:“checkinvestments.php”,
数据:{invitedPlayer:invitedPlayer},
成功:功能(数据)
{
//将json字符串解析为javascript对象
var=JSON.parse(数据);
console.log(邀请);//变量调试检查
//检查发往/发往的邀请
var invitingPlayer=invitations.invitationFrom;
var invitationStatus=invitations.invitationStatus;
//如果玩家收到邀请,弹出一个屏幕,要求他们确认/接受邀请
if(invitationStatus!=“false”)
{
clearInterval(checkInvitationIntervalId);
确认\是=确认(邀请玩家+“邀请你参加游戏。接受?”);
}   
}
})
}
这是它请求访问的PHP页面

<?php
session_start();

// Create connection
$conn = new mysqli('localhost', 'root', '', 'warzone');

// Check connection
if ($conn->connect_error) 
{
    die("Connection failed: " . $conn->connect_error);
}

$invitations = array();
//look for rows in database where user=the invited user and the invitestatus has been set to true (after invite was sent)
$request = "SELECT * FROM warzone.logged_in_users WHERE USER='".$_POST["invitedPlayer"]."' AND INVITESTATUS='TRUE'";
$res = $conn->query($request);

if($row = $res->fetch_assoc())
{
    $invitations["invitationFrom"]=$row["INVITING_PLAYER"];
    $invitations["invitationStatus"]='true';    
}   
else
{
    $invitations["invitationFrom"]='none';
    $invitations["invitationStatus"]='false';
}

echo json_encode($invitations);

?>

请记住,当我在上面的PHP文件中使用$_SESSION[“goodUser”]代替$_POST[“invitedPlayer”]时,我得到了我想要的确切输出。我知道这很有效。显然,我无法让它与$\u POST一起工作,因为AJAX请求没有被提出/被破坏/未定义

感谢您的帮助

如果脚本元素指定了src属性,则它应该 没有在其标记中嵌入脚本

因此,您希望将jquery的包含分离到一个单独的标记中

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript">
</script> 
<!-- end script before you start the one with your code in it -->
<script type="text/javascrpt">

  // Your code that involves $ here...

</script>

//你的代码在这里包含$。。。
来自

如果脚本元素指定了src属性,则它应该 没有在其标记中嵌入脚本

因此,您希望将jquery的包含分离到一个单独的标记中

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript">
</script> 
<!-- end script before you start the one with your code in it -->
<script type="text/javascrpt">

  // Your code that involves $ here...

</script>

//你的代码在这里包含$。。。

$\u会话[“goodUser”]将值转移到javascript中的隐藏并使用隐藏值。未定义的具体内容是什么?你能调试并告诉我们你到底缺少什么价值吗?您可以在网络选项卡中查看是否对文件发出XML请求,是否在网络中有XML请求,这意味着ajax正在工作。在成功后添加错误:部分以查看是否发出了调用。另外,您可能需要将数据设置为data:JSON.stringify({invitedPlayer:invitedPlayer}),@codelover我认为这不是问题所在,因为当我只是手动将invitedPlayer设置为我想要的值(在本例中,是一个具有正确用户名的字符串)时,它仍然会给我一个未定义的函数错误。$defined?是否在加载所有包含项之前调用该函数?$\u会话[“goodUser”]将值传输到javascript中的hidden并使用hidden值。什么是未定义的?你能调试并告诉我们你到底缺少什么价值吗?您可以在网络选项卡中查看是否对文件发出XML请求,是否在网络中有XML请求,这意味着ajax正在工作。在成功后添加错误:部分以查看是否发出了调用。另外,您可能需要将数据设置为data:JSON.stringify({invitedPlayer:invitedPlayer}),@codelover我认为这不是问题所在,因为当我只是手动将invitedPlayer设置为我想要的值(在本例中,是一个具有正确用户名的字符串)时,它仍然会给我一个未定义的函数错误。$defined?是否在加载所有包含之前调用该函数?