古い MS-DOS Foxpro プログラムを CakePHP に移行していますが、アプリケーション プロセスの一部で、ユーザーがテキスト ファイルを読み込んで、ビジネス ロジックに従って処理する可能性があります。
私はアルゴリズムを操作しましたが、正常に機能しています。プレーンな PHP でプログラムしました。
ただし、プロセスの一部では、ユーザーはいくつかのタスクを実行するために対話する必要がありますが、プレーンな PHP ではそれが可能です。
私の質問は:
ビューに制御を与えるときにコントローラーがデータを処理したため、MVC フレームワークでインタラクティブなファイル処理を行うにはどうすればよいですか?
jQuery-ajax が役に立ちますか?
どう思いますか?
よろしく
アップデート
Borislav Sabevが指摘したように、私はこれを行います:
以下を使用してファイルのアップロードを作成します: jQuery Form Plugin
アップロードされたファイルのデータ構造に従って解析する PHP ファイル。解析されたファイルの内容を JSON でクライアントに返します。
次に、JSON データが ajax POST 経由で処理のために送信されます
$.each(data, function (i, fb) {
callAJAX(fb);
});
callAJAX は POST リクエストを送信するだけです
function callAJAX(fb){
$.ajax({
type: 'POST',
url: "proc.php",
dataType:"json",
complete: function(r,st){
},
success: function(r,st){
processError(r);
})
},
async: false
});
}
翻訳エラーがある場合、PHP は JSON を介してクライアントにエラー メッセージを返します。
function proccessError(r)
{
$.each(r,function(i,d){
if (d['error'] == 1){
$.alert('Material not found in translation table','Error');
}
})
}
ここで大きな問題:
$.alert ダイアログを開くと、オートコンプリートを介してユーザーに正しいマテリアルを選択してもらいますが、コードはユーザーの選択を待機せず、別の $.alert ウィンドウをポップします。ユーザー入力を待ってから処理を続行するようにjqueryに指示するにはどうすればよいですか?
ところで: これは私が使用する $.alert 拡張機能です:
$.extend({ alert: function (message, title) {
$("<div></div>").dialog( {
buttons: { "Ok": function () { $(this).dialog("close"); } },
close: function (event, ui) { $(this).remove(); },
resizable: false,
title: title,
modal: true
}).text(message)
.parents(".ui-dialog:eq(0)").wrap('<div class="error-w"></div>');
}
});