0

私はこのAJAX呼び出しを持っています:

$.ajax({
    url: '../php/functions/area_id_to_table_name.php',
    type: 'POST',
    dataType: 'json',
    scriptCharset: "utf-8",
    data: { areaOfWorkId: userAreaOfWorkArray }
}).always(nextStep);

function nextStep(a, textStatus, b) {
    if (textStatus === 'success') {
        // success
        alert(a);
    } else {
        // failure
        alert('Failed: ' + b);
    }
}

およびこの PHP コード (URL):

<?php
require_once 'connection.php';
$link = conenct('localhost', 'root', '', 'w_db');

mysql_query( "SET NAMES utf8" );
mysql_query( "SET CHARACTER SET utf8" );
mysql_set_charset('utf8', $link);

Class AreaInfo{
    public $areaName;
    public $areaId;
    public $areaTableName;
}
print_r($_POST['areaOfWorkId']);
$areaOfWorkArray = $_POST['areaOfWorkId'];

$areaInfoArray = Array();
foreach ($areaOfWorkArray as $key){
    $key = mysql_real_escape_string($key);
    if ($key == 0) continue;
    $tmpObj = new AreaInfo();
    $tmpObj->areaId = $key;
    $query = mysql_query("SELECT areaOfWork, tableName FROM area_of_work WHERE id = '$key'");
    $query = mysql_fetch_assoc($query);
    $tmpObj->areaName = $query['areaOfWork'];
    $tmpObj->areaTableName = $query['tableName'];
    array_push($areaInfoArray, $tmpObj);    
}

print_r($areaInfoArray);
echo json_encode($areaInfoArray);
?>

このエラーのアラートが表示されます:

失敗: SyntaxError: JSON.parse: 予期しない文字

Chrome 開発者ツールでは、すべて正常に動作しているようです。PHP ページを開くと、次の行が表示されます。

注意: 未定義のインデックス: C:\xampp\htdocs\job-skills\php\functions\area_id_to_table_name.php の 15 行目の areaOfWorkId

注意: 未定義のインデックス: C:\xampp\htdocs\job-skills\php\functions\area_id_to_table_name.php の 16 行目の areaOfWorkId

警告: 19 行目の C:\xampp\htdocs\job-skills\php\functions\area_id_to_table_name.php の foreach() に無効な引数が指定されました

4

1 に答える 1

3

を呼び出すとprint_r、応答にガベージ (つまり、JSON ではない) が含まれます。ブラウザは JSON として解釈できません。

于 2012-09-22T20:12:01.153 に答える