我正在將一箇舊的MS-DOS Foxpro程序遷移到cakePHP,但在應用程序的某些部分,用戶將有可能加載一個文本文件並根據它進行處理到一些商業邏輯。使用PHP,jQuery和Ajax進行交互式文件處理
我工作的算法,它工作正常,我用純PHP編程。
但是在這個過程的某些部分中,用戶必須交互執行一些任務,在普通的PHP中可以這樣做。
我的問題是:
如何,我可以有一個互動的過程文件上的MVC框架,因爲控制器已經處理過的數據時,它`給控制的看法?
jQuery-ajax可以提供幫助嗎?
您認爲如何?
問候
更新
由於鮑里斯拉夫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等待用戶輸入一個然後繼續處理?
BTW:這是我使用$ .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>');
}
});
「在普通的PHP中可以做到這一點」然後,可以使用任何php框架,但是您要求的內容不夠清晰,無法進一步評論。 – AD7six
要處理的文件有一個很長的cad數據列表,按行排列,我像CSV一樣操作文件。 處理文件時,該算法會執行從cad術語到內部記法系統的轉換,但有時cad文件包含不在轉換表上的定義,然後要求用戶手動選擇適當的值。 我在控制器上編程了算法,但我不知道如何通過視圖干擾用戶,因爲視圖顯示了控制器上的方法或操作的結果。 – DariusVE