0

我正在尝试使用 AJAX 将 a 变量从 JavaScript 传递给 PHP,但我无法这样做。每当我尝试 var_dump($_POST['winner_id']) 时,它都会返回 NULL。我尝试使用 Chrome 中的开发人员工具检查 AJAX 调用,它显示了 winner_id:0 - 这是正确的。

这是我的代码:

JavaScript

 function ajaxCall() {

   alert("To AJAX: the winnerid is: "+winner_id);

        $.ajax
        (   {


                type: "POST",
                url: "ajax.php",
                data: {winner_id : winner_id}, 
                success: function(response)
                { alert("The winner was passed!")}
            }
        );
};
ajaxCall();

PHP 代码

<?php 
session_start();

if(isset($_POST['winner_id']))

{
    $winner_id = $_POST['winner_id']."";
    var_dump($winner_id);
}

var_dump($_POST['winner_id']);

?>

如果我var_dump($_POST)在 PHP 脚本的开头做 a 那么它给了我array(0) { }

我是 Web 开发的新手,并且已经尝试了几个小时来解决这个问题。任何提示将不胜感激。谢谢!

4

3 回答 3

2

你在哪里初始化winner_id。要么你必须将它作为参数传递,要么将它初始化为全局变量。

function ajaxCall(winner_id) {

   alert("To AJAX: the winnerid is: "+winner_id);

        $.ajax
        ({
                type: "POST",
                url: "ajax.php",
                data: {"winner_id" : winner_id}, 
                success: function(response)
                  { 
                     alert("The winner was passed!");
                  }
        });
};
ajaxCall(winner_id);
于 2013-04-29T04:19:06.437 回答
0

你从哪里开始价值winner_id?喜欢

function ajaxCall() {
var winner_id = '123';
...

或者如果您winner_id在调用之前启动ajaxCall(),您应该使用来自您的 PHPajaxCall()的参数调用ajaxCall($winnerid)$winnerid然后

function ajaxCall(winner_id) {
...
于 2013-04-29T03:50:15.967 回答
0

我想你必须将你的winner_id 转换为字符串,因为 php 将零 (0) 读取为 null

function ajaxCall() {

   alert("To AJAX: the winnerid is: "+winner_id);

        $.ajax
        (   {


                type: "POST",
                url: "ajax.php",
                data: {winner_id : winner_id.toString()}, 
                success: function(response)
                { alert("The winner was passed!")},
                dataType: "json"
            }
        );
};
ajaxCall();
于 2013-04-29T04:03:31.877 回答