-3

データ文字列は次のとおりです。

{"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 が空なのか? 私は何をすべきか ?何か案は?

4

4 に答える 4

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);

これにより、何が起こっているのかを開始してデバッグする場所が得られます。

于 2012-06-05T17:53:20.647 に答える
0

これは直接的な解決策ではありませんが、何が問題なのかを突き止めるのに役立つ場合があります。$_POST スーパーグローバルの内容をダンプしてみてください。これにより、データがどのように受信されたかがわかります。次のようなものを試してください:

print '<pre>';
print_r ($_POST);
print '<pre>';
于 2012-06-05T17:52:00.400 に答える
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']);
于 2012-06-05T20:56:57.693 に答える
0

パラメータ名の二重引用符を削除します

{
   feedback_type: "000",
   error_type: "",
   textarea: "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah"
}
于 2012-06-05T17:56:14.790 に答える