2013-04-29 120 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