1

データベースからすべてのデータを取得し、結果を JSON 形式で取得する PHP クラスを作成しました。

public function getCategories() {
    if (!$this->isConnectionAlive()) {
        $this->getConnection();
    }

    $data = $this->dbconn->prepare("SELECT DISTINCT cat FROM regalo");
    $data->execute();
    $results=$data->fetchAll(PDO::FETCH_ASSOC);
    $json_data = json_encode($results);
}

次に、クラスのオブジェクトがこのメソッドを呼び出し、まさにそれを正常に実行できます。

$dbh = new DatabaseHandler('localhost', 'fakeuser', 'fakepass', 'fakedb');

$dbh->getCategories();

このデータを AJAX スクリプトに渡して、JSON 形式の結果を操作できるようにするにはどうすればよいですか?

4

1 に答える 1

3

これはあなたのjavascriptでそれを行う必要があります:

$.get('/getCategories',null,function(response){
  console.log(response);
},"JSON");

そして、phpスクリプトでjsonでエンコードされたデータをエコーする必要があります

public function getCategories() {
    if (!$this->isConnectionAlive()) {
        $this->getConnection();
    }

    $data = $this->dbconn->prepare("SELECT DISTINCT cat FROM regalo");
    $data->execute();
    $results=$data->fetchAll(PDO::FETCH_ASSOC);
    $json_data = json_encode($results);
    header('Content-type: text/json');
    header('Content-type: application/json');
    echo $json_data;
}

私は実際にそれを後で再利用するためにそれ自身のものに投げ込みます:

public static function send_json_data($php_array)
{
        header('Content-type: text/json');
        header('Content-type: application/json');
        echo json_encode($php_array);
        exit(); //if you have hooks or something else that executes after output in your script, take this line out.
}
于 2013-02-17T19:17:19.603 に答える