使用AJAX将JavaScript变量传递给PHP函数

时间:2018-02-02 17:29:28

标签: javascript php ajax

在我的 dashboard.php 中,我有一个基于用户点击按钮调用的Javascript函数。单击该按钮时,它会调用名为getTeamMembers的JavaScript函数,并将值传递给它。传递给此函数的值然后被发送到PHP函数(它也位于dashboard.php中)。

然而,我没有取得任何成功,并希望有人可以指导我在哪里出错。当涉及到AJAX时,我是一个菜鸟,所以我认为我犯了一个愚蠢的错误。

我知道我的函数肯定是在函数内快速window.alert(myVar);之后传递给它的预期变量数据。

这是我到目前为止所做的:

    function getTeamMembers(teamID,lecturer_id) {

        var functionName = 'loadTeamMembersChart';

    jQuery.ajax({
        type: "POST",
        url: 'dashboard.php',
        dataType: 'json',
         data: { functionName: 'loadTeamMembersChart', teamID: teamID, lecturer_id: lecturer_id },
         success: function(){
            alert("OK");
        },
        fail: function(error) {
            console.log(error);
        },
        always: function(response) {
            console.log(response);
        }
         }
       ); 
   }

在调用所需的php函数之前,我在我的php Dashboard类从文件顶部开始之前收集发送的变量。我计划将变量传递过去,我可以确定它们实际存在。

然而,当我点击按钮时,发送的数据不会回显任何内容。

if ($_SERVER['REQUEST_METHOD'] == 'POST'){


if (!empty($_POST["teamID"]) && !empty($_POST["lecturer_id"]))
{
  $teamID = $_POST['teamID'];
  $lecturer_id = $_POST['lecturer_id'];
  echo $teamID;
  echo " is your teamID";
} 
else 
{

  echo "no teamID supplied";
}

}

2 个答案:

答案 0 :(得分:-1)

你成功函数中的else语句,而不是你如何设置失败回调,请尝试以下操作并告诉我们你在控制台中看到了什么。

function getTeamMembers(teamID,lecturer_id) {

    jQuery.ajax({
        type: "POST",
        url: 'dashboard.php',
        dataType: 'json',
        data: {functionname: 'loadTeamMembersChart', arguments: [teamID, lecturer_id]},
        success: function(data) {
            console.log(data);
        },
        fail: function(error) {
            console.log(error);
        },
        always: function(response) {
            console.log(response);
        }
    });
}

答案 1 :(得分:-2)

看起来你的函数在进入下面的语句时没有返回成功消息。

if ($result) {

        "Awesome, it worked"
     }

请尝试在字符串前添加一个返回。

if ($result) {
        return "Awesome, it worked";
     }

这可能是其他因素,但您提供的信息不足以进行任何进一步的分析。