1

次のようなPHPページがあります。

<?php

class CallsClass {

    var $conn1;
    var $dataTable = "";

    function calls() {    
        $this->conn1 = new Datasource("taylor", "dbproj", "root", "elves") or die("Could not connect");

        $s1 = "SELECT id, UPPER(SUBSTRING_INDEX(fullname,' ',1)) as fullname, oldcode FROM `researcher` WHERE `display` = '1' AND fullname <> 'Jenny Porteous' AND fullname <> 'Carey-Lee Lendrum' AND fullname <> 'Carys Gibson'";
        $result = $this->conn1->_execute($s1);

        while ($row = $this->conn1->_nextAssocRow($result)) {
            $fullName = $row['fullname'];
            $dataTable .= $fullName;
        }
        echo json_encode($dataTable);
    }

}

?>

I know want to call this with my Ajax function:

$(document).ready(function() {
                    $(function () 
                    {
                        $.ajax({                                      
                            url: 'Queries/CallsQuery.php/calls',            
                            dataType: 'json',              
                            success: function(result)         
                            {
                                //console.log(result);
                            } 
                        });

                    });

Google Chrome開発ツールで「OPTIONSfile:/// C:/Users/wesley/Desktop/Highcharts%20example/Queries/CallsQuery.php/calls()リソースを読み込めませんでした」というエラーが表示されます。理由は何ですか。

ありがとう、ウェズリー

4

2 に答える 2

2

短いバージョン: Web サーバーを使用していないためです。


ブラウザは PHP をサポートしていません。WWW のコンテキストでは、サーバー側のプログラミング言語です。

以下を行うには Web サーバーが必要です。

  • ファイル名の末尾を超えてデータを渡す URI を解釈する
  • PHP を実行する

/function_nameさらに、 URIの最後にあることを「ファイル内の唯一のクラス内でこの関数を実行する」として処理する機能を持つPHPについては知りません。

その機能があるかもしれません。私は PHP の専門家ではありませんが、PHP の場合でも、「私がおそらく意味することを行う」ように思えます。

これに対する通常のアプローチは、URI をチェックしてから適切な関数を実行するコントローラー ハンドラーを用意することです。

于 2012-08-21T09:43:27.060 に答える
2

編集:エラーを読んでもいませんでしたが、クエンティンは正しいです:phpは何もしていないようです:xamppを入手し、ドキュメントを読んで、ローカルマシンにクイックサーバーをセットアップしてください。xamppは死んでいるのでお勧めします-セットアップは簡単ですが、いつものように、ゼロから行う方が有益です

これがどのように機能すると思いますか?インスタンス化されていない限り、クラスは不活性コードです。リクエストを送信するスクリプトに含まれるメンバー関数を呼び出しています。このスクリプトはクラスを定義し、それに関する限りクラッキング ジョブを実行し、家に帰ってさわやかなビールを飲みます。

リクエストを処理し、インスタンスを作成してから、適切なメンバー関数を呼び出すajax スクリプトが必要です。


トピックから外れますが、それでも: jQuery コードについて:readyコールバックをネストするのはなぜですか?

$(function ()

の略です

$(document).ready(function ()

したがって、これは私には意味がありません:

$(document).ready(function ()
{
    $(function ()
    {});
});
于 2012-08-21T09:45:18.767 に答える