我試圖提交一個表單,其中包含通過Ajax/jQuery上傳的文件,通過PHP腳本處理表單,並將結果返回到div最初的形式住在使用jQuery/Ajax提交表單僅適用於其他任何時間
我目前的形式代碼:
<section id="content-right">
<form name="uploader" id="uploader" method="POST" enctype="multipart/form-data">
<input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="10485760" />
<input type="file" name="fileselect" id="fileselect" />
<input type="submit" name="submit" id="submit" value="Upload" />
</form>
</section>
而且我現在的阿賈克斯/ jQuery腳本是:
<script>
$(function() {
$('#uploader').submit(function() {
$(this).ajaxSubmit({
type: $(this).attr('method'),
url: 'upload-song.php',
success: function(response) {
$('#content-right').html(response);
}
});
return false;
});
});
我的PHP腳本是「upload-song.php」(細節無關緊要)。我也有YUI.Pjax運行處理正常的導航(HREF)鏈接並加載#內容右(如果用戶點擊任何東西,我希望它加載#內容右)中的那些。
通過這種設置,通過正常鏈接導航完美地工作,一切都加載#內容 - 正確,但上傳只能在其他時間。
例如,上傳器會在#content-right中加載upload-song.php並完美處理所有內容,然後如果我離開頁面並嘗試上傳另一個項目,它將無法工作,它會只需刷新頁面(如果我將action =「upload-song.php」放在表單標籤中,它會將upload-song.php作爲整頁加載,而不是#content-right)。刷新頁面後,我可以上傳另一個項目,它將完美工作。
我認爲這與我如何附上我的阿賈克斯腳本的形式提交(因爲如果我刷新頁面,它完美的作品)做的,但我沒有很多的這些語言的經驗,所以我我不知道如何解決它。
此外,如果我禁用YUI.Pjax它修復了上傳器,但顯然打破了我的鏈接,所以我正在尋找工作。
任何想法?
是每次調用PHP頁面還是確定問題出在javascript中? – SISYN
每次通過Ajax/jQuery都不會調用PHP頁面。它每隔一段時間都會被調用。如果我向表單字段添加一個動作標籤,它將通過Ajax提交表單,然後通過動作標籤提交表單,但是如果我將動作標籤留出,它只會刷新頁面。正如我所說,我認爲一個解決方法將是可能的JavaScript內,但這是由於我無法弄清楚該JavaScript和YUI.Pjax(如果我禁用YUI.Pjax)的衝突,上傳腳本工作100%的時間。 – Andrew