ফর্ম জমা AJAX ব্যবহার করে যদিও রিফ্রেশ প্রতিরোধ করতে পারবেন না

হ্যান্ডলিংয়ের জন্য ব্যাক-এন্ডে একটি এক্সেল ফাইল আপলোড করার জন্য আমি একটি পোর্টলেট ফাংশন লিখছি।

এবং আমি চাই যে পৃষ্ঠাটি রিফ্রেশ না করে এবং আমাকে সফল আপলোডের পরে পৃষ্ঠাটি পরিবর্তন করতে দেয়।

আমি ফাইল আপলোড করার জন্য AJAX ব্যবহার করার চেষ্টা করেছি, কিন্তু এটি কাজ করছে না।

এইচটিএমএল অংশ


Please Upload a Document 

 <form id = "UploadExcelForm" name ="UploadExcelForm" action="<%=uploadWorkbook%>" method="post" enctype="multipart/form-data">
<input type="file" id="uploadedFile" name="uploadedFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel">
<button type="submit"> Upload </button>
</form>

AJAX অংশ,

$("#UploadExcelForm").on('submit', (function(e) {
   if ($('#uploadedFile').val().trim().length == 0) {
        alert("Please choose a file!");
        return false;
    }else{
            $.ajax({
            url: uploadWorkbook,
            type: 'POST',
            cache: false,
            data: $('#UploadExcelForm').serialize(),
            processData: false,
            contentType: false,
            success: function(){}
        })
        e.preventDefault();
}
}));

ব্যাক-শেষ অংশ (আপলোড হওয়া ফাইলটি কীভাবে পেতে হয়)

public void uploadWorkbook(ActionRequest actionRequest,ActionResponse actionResponse) throws Exception{
        boolean submit = true;
        boolean success = false;
        UploadPortletRequest uploadPortletRequest = PortalUtil.getUploadPortletRequest(actionRequest); 
        String uploadedTemplateId = uploadPortletRequest.getParameter("templateId");

        File uploadedFile = uploadPortletRequest.getFile("uploadedFile", true); 
//to do sth on file...
}
0
উভয় ক্ষেত্রেই e.preventDefault (); সরাতে এবং মিথ্যা ফেরত সরানোর চেষ্টা করুন, তাই if/else বাইরে
যোগ লেখক quirimmo, উৎস
উভয় ক্ষেত্রেই e.preventDefault (); সরাতে এবং মিথ্যা ফেরত সরানোর চেষ্টা করুন, তাই if/else বাইরে
যোগ লেখক quirimmo, উৎস

8 উত্তর

The other answers give you some hints on the JS side, which you should follow. On the portal side, you're posting to , which will return a fully rendered page (and might even be intercepted by Liferay's SPA framework - though I'm not sure about it handling explicit ajax calls.

If you just want to return a result for your file upload (e.g. a status, JSON, etc), you probably want to post to , and handle it in a resource-handler on the Java side, instead of an action-handler.

একটি সংস্থান হ্যান্ডলারের পোস্ট করা পৃষ্ঠাটির অন্যান্য পোর্টলেটগুলি প্রদান করবে না, যখন একটি অ্যাকশন হ্যান্ডলার করবে।

0
যোগ

পরিবর্তন :

 Upload 

থেকে

 Upload 

এবং রাখ

e.preventDefault();

অবস্থা যদি বাইরে থাকে (তাই এটি উভয় জন্য সঞ্চালিত হয়)

0
যোগ

পরিবর্তন :

 Upload 

থেকে

 Upload 

এবং রাখ

e.preventDefault();

অবস্থা যদি বাইরে থাকে (তাই এটি উভয় জন্য সঞ্চালিত হয়)

0
যোগ

টাইপ = "জমা দিন" থেকে পরিবর্তন করুন:

<button type="submit"> Upload </button>

করুন:

<button> Upload </button>
0
যোগ

টাইপ = "জমা দিন" থেকে পরিবর্তন করুন:

<button type="submit"> Upload </button>

করুন:

<button> Upload </button>
0
যোগ

ফর্ম ট্যাগ মুছে ফেলার চেষ্টা করুন এবং টাইপ আপনার বাটন থেকে জমা দিন।

0
যোগ

ফর্ম ট্যাগ মুছে ফেলার চেষ্টা করুন এবং টাইপ আপনার বাটন থেকে জমা দিন।

0
যোগ

ফর্ম ট্যাগ থেকে পদক্ষেপ সরাতে চেষ্টা করুন।

তারপরে e.preventDefault() এর পরিবর্তে মিথ্যা ফেরত ব্যবহার করুন এবং যদি/else বিবৃতির বাইরে রাখুন।

0
যোগ