2013-09-29 58 views
0

我嘗試使用JavaScript來發布單一數據到PHP頁面,但無法得到它的權利.. 這是我試過的代碼:如何從JavaScript數據發佈到PHP

try.js:

$(document).ready(function(){ 
var data = 1; 
$.post("data.php", { test_data: data}); 
}); 

data.php:

<?php 
$test_data = $_POST[test_data]; 
echo $test_data 
?> 

,當我訪問文件data.php它說:「使用未定義的常量TEST_DATA」和「未定義指數:TEST_DATA」 ..這是爲什麼? 有人可以告訴我代碼中有什麼問題嗎?

+0

我不知道未定義的常量錯誤,但使用'$ _POST ['test_data'];'而不是'$ _POST [test_data];'。而且,如果您直接使用瀏覽器訪問try.php,則索引當然是未定義的,因爲您沒有向腳本發佈任何數據。 – TheWolf

+0

@reza不要忘了標記一個答案,如果它幫助你。 – Thew

+0

發佈這兩個文件的更多代碼。我希望你已經在你的文件中包含了jQuery庫。使用瀏覽器的開發人員工具檢查頁面是否包含任何JavaScript錯誤。 –

回答

2
  1. 你張貼到了錯誤的文件。爲什麼要張貼到try.php如果你的服務器端文件是data.php

  2. test_data$_POST[]應該是一個字符串,而不是一個常數。使用$_POST['test_data']

  3. 您仍然會看到一個錯誤,因爲當您直接訪問data.php時,您不會發布任何內容,因此$_POST[]實際上是空的。

+0

對不起,我錯了,錯的錯字..如果我不能直接訪問data.php所以如何知道我想發佈到data.php的值是否正確? – reza

+0

您可以從頁面(http://api.jquery.com/jQuery.post/)獲取響應,也可以使用Postman之類的Chrome擴展,以便您可以手動創建「POST」數據。 https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en – Cristy

0

$_POST[test_data];!= $_POST['test_data']

當你做$_POST[test_data],你檢查是否$ _POST(陣列)具有關鍵test_data。但全局變量($_POST$_GET,$_SERVER)永遠不會有作爲選擇器的常量。檢查一個字符串。

+0

抱歉,我的壞,錯誤的錯字...我已經嘗試$ test_data = $ _POST [「test_data」];和$ test_data = $ _POST ['test_data'];但它保持說未定義索引 – reza

2

這不是有效的PHP:

$test_data = $_POST[test_data]; 

作爲錯誤指示,test_data不是一個已知常數。你需要使用一個字符串:

$test_data = $_POST["test_data"]; 
+0

對不起我的壞..錯誤的錯字...我已經嘗試$ test_data = $ _POST [「test_data」];和$ test_data = $ _POST ['test_data'];但它說undefined索引 – reza

+0

@reza:好的,根據你的代碼,你將值發佈到'try.php',但代碼在'data.php'上。您需要將該值發佈到具有代碼的頁面,或者將代碼放在接收發布值的頁面上。或者也許包含另一個。無論哪種方式,所發佈的PHP代碼都需要在值發佈時執行。 – David