2013-04-29 82 views
0

我想通过AJAX将JavaScript中的变量传递给PHP,但我无法这样做。每当我尝试var_dump($ _ POST ['winner_id'])时,它都会返回NULL。我试图用Chrome浏览器中的开发者工具检查AJAX调用,它显示winner_id:0 - 这是正确的。通过AJAX将JavaScript中的变量传递给PHP

这里是我的代码:

的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']); 

?> 

如果我那么PHP脚本的开始做一个var_dump($_POST)它给了我array(0) { }

我是网络开发新手,现在已经试图解决这个问题了好几个小时了。任何提示将不胜感激。谢谢!

+0

呃,如果你传递一个实际的零到PHP,你期待什么。你是否尝试过使用一些容易识别的字符串呢? – adeneo 2013-04-29 03:44:20

+0

'成功'被叫? – 2013-04-29 03:45:10

+0

在我调用ajax函数并使用其中的winner_id之前,我发起并计算了winner_id – user2330619 2013-04-29 03:45:28

回答

0

您从哪里向winner_id发起价值?像

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

,或者如果你调用ajaxCall()之前发起winner_id,你应该叫ajaxCall()与像ajaxCall($winnerid)参数,$winnerid是从你的PHP 然后

function ajaxCall(winner_id) { 
... 
+0

我尝试输入winner_id作为ajax函数的参数并调用成功,同样当我进入开发人员工具/网络和XHR,它显示winner_id = 1(这是正确的) – user2330619 2013-04-29 04:04:29

+0

所以如果我想你的初始值是'$ winnerid'就像'ajaxCall($ winnerid)'调用函数'。 – Amir 2013-04-29 04:05:44

+0

那么问题是什么? – Amir 2013-04-29 04:12:56

0

我猜你有你的winner_id转换到一个字符串,因为PHP读取零(0)为空

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(); 
+0

感谢您赢得winner_id.toString()的想法。我实现了它,但是我仍然无法在我的php脚本中得到它 – user2330619 2013-04-29 05:09:53

+0

没有必要,除非你给ajax的响应作为json @Charlene Lauron – 2013-04-29 05:16:25

+0

hmm但函数传递json数据到php,好吧我会测试它..谢谢@Deepu – 2013-04-29 05:19:54

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); 
+0

谢谢Deepu!我按照你给我的指示,确保我传入了winner_id作为函数的参数,我可以看到它传递了结果,但是我仍然无法获得我的php代码中的winner_id var_dump($ _ POST ['winner_id'])= NULL – user2330619 2013-04-29 04:52:14