3

スクリプト プロジェクトを進める前に、このことを尋ねるべきだと思いました。後で、自分が何か間違ったことをしている可能性があることに気付きました。自分のやっていることが本当に正しいかどうかを確認することで、そもそも自分の時間を節約することもできます。

私は PHP と JQuery にかなり慣れていませんが、まだ両方のコツをつかんでいます。最近、JQueryを使用して特定の関数を実行した後にPHPコードを実行したいという問題に遭遇したので、オンラインで読んだ後、やりたいことだけを行うPHPファイルを作成してPOSTするというアイデアを得ました必要な変数を使用して JQuery 関数から。そうすれば、サーバー側とクライアント側の目標を同時に達成できます。でも!

それは私には正しく見えません。まったく。1 つの単純なページに少なくとも 10 個のインクルード ファイルがあることに気付きました。これらのファイルは、フォームの読み込み時に HTML コードに含まれ、JQuery 関数で特定の DIV を更新した後、再読み込みされます。そうすれば、スクリプトを動的に保つことができます。それを維持するために他にできることはないと思います。

ただし、特定の JQuery 関数を実行した後に更新する必要があることがよくあります。そのため、読み込み中のファイルと同様のファイルを呼び出しますが、今回はいくつかのパラメーターを (JQuery を介して POST メソッドを使用して) 転送し、実行するファイルです。ファイル自体で必要なアクション。

さて、私の現状と仕事のやり方を簡単に説明した後、私のやっていることは正しいか知りたいと思います。私が一体何を話しているのかまだ疑問に思っている場合は、私が何を意味するのかを詳しく説明したいと思います。

データベースからのデータといくつかの追加行を出力する index.php ファイルがあるとします。ページ ボタンの 1 つをクリックしたら、ページに埋め込まれたフォームに従ってデータベースを更新し、そのデータのみを含む DIV をリロードします。ページ全体をリロードしたくありません。

JQueryを使わずにそれをやりたいと思ったら、それは簡単だったでしょう。データを同じフォームに POST し、POST パラメータが実際に有効な場合は更新します。ただし、JQuery なしでその DIV を更新する方法がないため、次のようなものを思いつきました。

$.post("/files/dosomething.php", { taskID:    _taskID }, function(){
    $("#div_tasks").fadeOut(800, function(){
        $('#div_tasks').load('/files//load_div_A.php', function(){
            $("#div_tasks").fadeIn(1500);
        });
    });
});

これが、PHP と JQuery を学習する最後の 1 週間で私が行ってきたことです。これ以上先に進む前に、それが本当に私の目標を達成するための正しい方法であるかどうかを知りたい.

// 例 B:

たとえば、HTML コードに、タスクの表を出力する DIV があります。どうすれば印刷できますか?テーブルを表示したい正確なポイントでテーブルをエコーするファイルを含めます。次に、各行には、選択した行をデータベースから削除する「削除」というボタンがあります。私がしているのは、JQuery を使用して (その DIV のみを更新したいという事実のため)、remove.php を呼び出す別の外部ファイルを呼び出し、POST を使用して削除したいタスクのインデックスを送信することです。ファイルはサーバー側のコードを実行し、それが完了すると、メイン ページから最初に呼び出していたファイルを呼び出して、更新されたテーブルをその DIV に読み込みます。今回は、更新されたデータをデータベースから読み取るため、テーブルが更新されます。

それが私がこれを成し遂げる方法ですか?これは正しい方法ですか?それは私には正しくないようです。私はそのようにコーディングしたことがないので、少し面倒です。

事前に感謝し、長いお尻の質問を申し訳ありません.

4

2 に答える 2

1

あなたが説明する問題は、まさに問題の分離パターン (MVC など) が取り組むように設計されているものです。

あなたの場合、表示インスタンスから表示インスタンスへの変更は、応答をフォーマットしてユーザーに返す方法だけです。

あなたのプロジェクトのために、よく知られているよく文書化された MVC フレームワークのいくつかを参照することを強くお勧めします (または、単に遊んでインスピレーションを得るだけの場合は、それらのほとんどと、簡単に実行できるスターター チュートリアルを参照してください)。 1時間ほど)。

これらのアプローチと互換性のある考え方で問題を見ているように見えますが、主にこれらのフレームワークが提供する多くの構造とツールが欠けているため、扱いにくいと感じるでしょう。

于 2013-06-02T03:34:48.593 に答える
1

質問を正しく理解している場合。実行したいアクションを実行し、必要な結果(html/jsonデータ)のみを返す別のスクリプトに(jQueryを使用して)投稿する方が簡単だと思います。現在、あなたは関連しているように見える何かを求めてサーバーに 2 つのリクエストを行っています。

私の提案は、実行したい特定のアクションを実行する 1 つの PHP スクリプトを呼び出すことです (たとえば、ニュース項目の更新など)。次に、応答でのみそのデータを返し、jQuery を使用して div で必要な方法でそのデータをフォーマットします。

$.post("/files/writetodatabase.php", { taskID:    _taskID }, function(data){
    $('#div_tasks').html(data) // this is assuming you return html, other wise you // could return JSON data and use it here
});

入力時に説明するのが難しいので、できるだけ明確にしようとしました。

于 2013-06-02T02:02:31.483 に答える