dataString:
{"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."')");
?>
Проблема в том, почему $ content пуст? Что мне делать? есть идеи?
Добавьте ответ в свою функцию успеха и сообщите об этом
$.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);
Это должно дать вам возможность начать и отладить, что происходит.
$_POST['feedback_type']
не установлено.
Вы отправляете строку 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']);
Удалите двойные кавычки для имен параметров
{
feedback_type: "000",
error_type: "",
textarea: "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"
}
Это не является прямым решением, но это может помочь вам выяснить, что не так. Попробуйте сбросить содержимое вашего супер-лобового $ _POST, это сообщит вам, как были получены данные. Попробуйте что-нибудь вроде:
print '<pre>';
print_r ($_POST);
print '<pre>';
dataString
для объекта.