2012-06-05 75 views
-3

dataString是:AJAX POST到PHP

{"feedback_type":"000","error_type":"","textarea":"blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"} 

我用下面的代碼張貼到PHP:

// ajax post 
$.ajax({ 
    type: "POST", 
    url: "core/poster.php" , 
    data: dataString, 
    success:function() 
    { 
     alert("Success!"); 
    } 
}); 

return false; 

和PHP文件:

<?php 

require 'Class_DBOperation.php'; 
require 'global.php'; 

// Establish Database Connection 
$dbOperation = new class_DBOperation(DBHOST,DBUSER,DBPWD,DBNAME,DBCHARSET); 

// Receive dataString 
$content=$_POST['feedback_type']; 
$run=mysql_query("insert into reports values (NULL, '".$content."')"); 

?> 

的問題是爲什麼$內容是空的? 我該怎麼辦?有任何想法嗎?

+1

奇使用類似名稱'dataString'爲一個對象。 – Blazemonger

+0

BTW,是我正在使用的jQuery版本。 – Samblg

回答

0

這不是一個直接的解決方案,但它可以幫助你找出哪裏出了問題。嘗試拋出您的$ _POST超全球的內容,這會告訴您數據是如何收到的。嘗試是這樣的:

print '<pre>'; 
print_r ($_POST); 
print '<pre>'; 
2

在你的成功的功能添加的響應,並提醒其

$.ajax({ 
    type: "POST", 
    url: "core/poster.php" , 
    data: dataString, 
    success:function(response) 
    { 
     alert(response); 
    } 
}); 

而在你poster.php文件中嘗試添加以下的PHP標籤內的頂部。

ini_set("display_errors", 1); 
var_dump($_POST); 

這應該給你一個地方開始和調試發生了什麼。

+0

螢火告訴我:陣列(0){ }
通知:未定義指數:feedback_type在C:\ SOFTWARE \ XAMPP \ htdocs中\海報。php on line
Samblg

+0

這意味着'$ _POST ['feedback_type']'沒有設置。 –

0

的參數名稱

{ 
    feedback_type: "000", 
    error_type: "", 
    textarea: "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah" 
} 
+0

不工作:(,BTW,是我正在使用的jQuery版本。 – Samblg

0

你發送一個JSON字符串作爲參數字符串中刪除您的雙引號。

foo=bar,foo2=bar2,foo3=bar3等等

你既可以格式化字符串遵循的規範:

JS

var dataString = "feedback_type=000&error_type=&textarea=blahblahblah"; 

參數應採用以下格式PHP

echo $_POST['feedback_type']; // 000 
echo $_POST['error_type']; // null 
echo $_POST['textarea']; // blahblahblah 

,或者你可以傳遞JSON字符串作爲POST參數:

JS

var jsonObject = { 
    "feedback_type" : "000", 
    "error_type" : "", 
    "textarea" : "blahblah" 
} 


var jsonString = '{"feedback_type":"000","error_type":"","textarea":"blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"}'; 

// OR 

var jsonString = JSON.stringify(jsonObject); 

var dataString = "json_string=" + jsonString; 

PHP

// String - suitable for database input 
echo $_POST['json_string']; // String: {"feedback_type":"000","error_type":"","textarea":"blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"} 

// Parse into array 
$json_array = json_decode($_POST['json_string']);