2013-03-19 108 views
5

我有1個PHP文件名稱index.php。在那個文件中,我想將一個變量從ajax傳遞給php。從ajax傳遞變量到php

var elem = document.getElementById("mydiv").value; 
(function($) 
{ 
    $(document).ready(function() 
    { 
     $.ajax(
     { 
      type:"POST", 
      url: window.location.href, 
      data: 'action='+elem, 
      beforeSend: function() { 
       $('#cctv').hide(); 
      }, 
      complete: function() { 
       $('#cctv').show(); 
      }, 
      success: function() { 
       $('#cctv').show(); 
      } 
     }); 
     var $container = $("body"); 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     var refreshId = setInterval(function() 
     { 
      $container.load('findAllPath.php',{'function': 'findAllPath'}); 
     }, 10000); 
    }); 
})(jQuery); 

和我的PHP的螢火

if (isset ($_POST['action'])) 
{ 
    echo $_POST['action']; 
} 

,我可以看到,AJAX已經發​​布 '行動=價值',但在php,$ _ POST [ '行動']是空的。 任何人都可以幫助我,我的代碼有什麼問題? 謝謝

+0

isset測試通過了嗎?它是設置,但只是一個空字符串? – Dutts 2013-03-19 09:41:20

+0

從哪裏執行此JavaScript執行?例如,它是在''標籤內,還是在''附近的底部? – 2013-03-19 09:47:28

+0

嘗試使'數據'爲散列而不是查詢字符串。 – halfer 2013-03-19 10:03:21

回答

1

它設置爲JSON對象:

data: {action: elem} 

不要用純JS混合jQuery的。

var elem = $('#myDiv').val(); 

和上面的朋友說的。可能會出現js在加載整個頁面之前試圖獲取value屬性的情況。你應該在文檔準備好塊中做所有事情。

你也可以這樣做:

data: { 
action: $('#myDiv').val() 
} 

你一定會那麼,你必須在表格上最新的數據!

4

嘗試使用這樣

data: {action: elem}, 

的數據。例如

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", action: "save" } 
    }).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

printr整個$ _REQUEST和檢查,如果你越來越行動

+0

我已經試過了,但有沒有不同:( – 2013-03-20 01:11:58

1

查找到這一點,並找到你錯過了什麼

$.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: { action: elem} 
     beforeSend: function() { 
      $('#cctv').hide(); 
     }, 
     complete: function() { 
      $('#cctv').show(); 
     }, 
     success: function() { 
      $('#cctv').show(); 
     } 
    }); 
    var $container = $("body"); 
    $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    var refreshId = setInterval(function() 
    { 
     $container.load('findAllPath.php',{'function': 'findAllPath'}); 
    }, 10000); 
}); 
+0

嗯?我不明白,如果你的意思是網址:「some.php」而不是window.location.href,是不會有任何不同 – 2013-03-20 01:01:31

+0

數據:'action ='+ elem,這是錯誤的一,你沒有得到答案或無法理解? – 2013-03-20 05:14:16

0
if (!empty($_POST['action'])) 
{ 
echo $_POST['action']; 
} 

試試這個代碼...

+0

但$ _POST ['行動']是未定義的,所以空的測試不會通過 – 2013-03-20 00:59:52