AJAXには本当に奇妙な問題があります。 これは、AJAXを介してPHPファイルへのparamsを送信JSコードとポスト方法を使用してファイルの断片である:Ajaxの成功関数が必要な命令で呼び出されない
var params = $('#add').serializeArray();
$.post('code/bg/adding_c.php', params, function(ret) {
//body of success function
}, 'json');
、これはPHPコード(adding_c.php)の断片である:
<?php
\t require "functions.php";
\t
\t //irrelevant operations
\t
\t $return = array(
\t \t 'status' => $status,
\t \t 'msg' => $msg,
\t \t 'id' => $id
\t);
\t
\t echo json_encode($return);
?>
すべてがWHE作品n require命令で行をコメントしたり削除したりしますが、アクティブなときは成功関数は起動しません。
- JS postメソッドが正しいparamsを送信します。
- phpファイルはそれを受け取り、適切な操作を行い、正しいデータをjsスクリプトに返します(FireBugで見ることができます)。
- 成功関数は発生しません。
AJAXに関連しない説明がこの問題の原因ですか?
編集。
のfunctions.php:
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'dbname';
$conn = new mysqli($host, $user, $pass, $db);
function querySQL($query)
{
\t global $conn;
\t $result = $conn->query($query);
\t return $result;
}
function cleanSQL($conn, $string)
{
\t return htmlentities(fixSQL($conn, $string), ENT_COMPAT, 'UTF-8'); \t
}
function fixSQL($conn, $string)
{
\t if(get_magic_quotes_gpc())
\t \t $string = stripslashes($string);
\t
\t return $conn->real_escape_string($string); \t
}
function fPassword($pass)
{
\t $salt1 = 'salt1';
\t $salt2 = 'salt2'; \t
\t $token = hash('ripemd128', "$salt1$pass$salt2");
\t
\t return $token;
}
?>
EDIT2。
エラーはなく、functions.phpからindex.phpに関数を貼り付けると、すべて正常に動作します。私は今何をすべきかわかりません。ここでは言葉が問題であるようです。これらの機能を私が必要とするすべてのファイルに追加することはできません。
あなたは 'functions.php'の内容は何ですか? –
多くのファイルで使用するデータベースと関数との接続。私はそのコードを投稿することができますが、私はそれをadd_c.phpにコピーするとすべてが動作します。 –