Jquery aj। Jax () ফাংশন নিয়ে আমার একটি ছোট সমস্যা আছে।
আমার একটি ফর্ম রয়েছে যেখানে রেডিও বোতামের প্রতিটি ক্লিক বা ড্রপডাউন মেনু থেকে নির্বাচন নির্বাচিত মান সহ একটি সেশন ভেরিয়েবল তৈরি করে।
এখন - আমার কাছে ড্রপডাউন মেনুগুলির মধ্যে একটি রয়েছে যার 4 টি বিকল্প রয়েছে - প্রথমটির (কোনওটি লেবেল নয়) এর একটি মান = "" অন্যের আইডি রয়েছে।
আমি যেটি ঘটতে চাই তা হল সেশনটি অপসারণ এবং একটি তৈরির জন্য অন্য কোনও বিকল্প নয় (ফাঁকা মান সহ), তবে কেবলমাত্র যদি এই নির্দিষ্ট নির্বাচিত নামের সেশনটি ইতিমধ্যে উপস্থিত না থাকে - অন্য সমস্ত বিকল্পের কাছে এটির পরিমাণ একই হিসাবে নির্ধারিত রয়েছে - এটি কেবল ইঙ্গিত দিচ্ছে যে কোনটি নির্বাচন করা হয়েছিল।
এটি নিশ্চিত হয়ে যায় কিনা তা সম্পর্কে আমি নিশ্চিত নই - তবে কোডটি একবার দেখুন - সম্ভবত এটি আরও পরিষ্কার করে দেবে:
$("#add_ons select").change(function() {
// get current price of the addons
var order_price_addon = $(".order_price_addon").text();
// get price of the clicked radio button from the rel attribute
var add = $(this).children('option').attr('label');
var name = $(this).attr('name');
var val = $(this).val();
if(val == "") {
var price = parseInt(order_price_addon) - parseInt(add);
removeSession(name);
} else {
if(isSession(name) == 0) {
var price = parseInt(order_price_addon) + parseInt(add);
}
setSession(name, val);
}
$(".order_price_addon").html(price);
setSession('order_price_addon', price);
updateTotal();
});
সুতরাং - সবার আগে যখন # অ্যাডড_নোন মেনুগুলি "পরিবর্তন" নির্বাচন করে আমরা গণনার জন্য কয়েকটি উপাদান থেকে কিছু মান পাই।
আমরা আমাদের নির্বাচন থেকে বিকল্পটির লেবেল বৈশিষ্ট্যটি পাই যা মোটটিতে যোগ করার জন্য মানটি সঞ্চয় করে, এই নামটি দিয়ে সেশন তৈরি করতে নির্বাচনের নাম এবং পরে কোনটি নির্বাচিত হয়েছিল তা পরীক্ষা করে মান নির্ধারণ করুন।
এখন - আমরা পরীক্ষা করি যে ভাল == "" (যা নির্দেশ করে যে কোনটিই নির্বাচন করা হয়নি) এবং আমরা মোটটি থেকে পরিমাণটি কেটে নেব পাশাপাশি নির্বাচনের নাম সহ সেশনটি সরিয়ে ফেলব।
এটির পরে সমস্যাটি শুরু হয় - অন্য বিবৃতি।
অন্যথায় - আমরা আমাদের নির্বাচকটির নামের সাথে সেশন () ফাংশনটি 0 বা 1 প্রদান করে কিনা তা খতিয়ে দেখতে চাই - যদি এটি 0 প্রদান করে তবে আমরা লেবেল বৈশিষ্ট্যে সংরক্ষিত মোট মানটিতে যুক্ত করব, তবে যদি এটি 1 প্রদান করে - যা প্রস্তাব দেয় এই অধিবেশনটি ইতিমধ্যে বিদ্যমান - তবে আমরা কেবলমাত্র এই পুনরায় তৈরি করে এই সেশনের মান পরিবর্তন করি - তবে পরিমাণটি এতে যুক্ত হয় না।
এখন সেশন ফাংশনটি দেখতে এরকম দেখাচ্ছে:
function isSession(selector) {
$.ajax({
type: "POST",
url: '/order.html',
data: ({ issession : 1, selector: selector }),
dataType: "html",
success: function(data) {
return data;
},
error: function() {
alert('Error occured');
}
});
}
এখন - সমস্যাটি হ'ল - "রিটার্ন" ব্যবহার করে ফাংশন থেকে ফলাফলটি ফিরে আসবে কিনা তা আমি জানি না - যেমনটি কাজ করে বলে মনে হচ্ছে না - তবে, যদি আমি সাফল্যে "ডেটা" রাখি: বিভাগটিতে সতর্কতা - এটি সঠিক মানটি ফেরত বলে মনে হচ্ছে।
কেউ কীভাবে ফাংশন থেকে মানটি ফেরত দিতে এবং পরবর্তী বিবৃতিতে এটি তুলনা করতে জানেন?
ধন্যবাদ বন্ধুরা - আমি এটি নিম্নলিখিত উপায়ে চেষ্টা করেছি:
function isSession(selector) {
$.ajax({
type: "POST",
url: '/order.html',
data: ({ issession : 1, selector: selector }),
dataType: "html",
success: function(data) {
updateResult(data);
},
error: function() {
alert('Error occured');
}
});
}
তারপরে আপডেট ফলাফল () ফাংশন:
ফাংশন আপডেট ফলাফল (ডেটা) {ফলাফল = ডেটা; }
ফলাফল - এটি বিশ্বব্যাপী পরিবর্তনশীল - যা আমি তখন পড়ার চেষ্টা করছি:
$("#add_ons select").change(function() {
// get current price of the addons
var order_price_addon = $(".order_price_addon").text();
// get price of the clicked radio button from the rel attribute
var add = $(this).children('option').attr('label');
var name = $(this).attr('name');
var val = $(this).val();
if(val == "") {
var price = parseInt(order_price_addon) - parseInt(add);
removeSession(name);
} else {
isSession(name);
if(result == 0) {
var price = parseInt(order_price_addon) + parseInt(add);
}
setSession(name, val);
}
$(".order_price_addon").html(price);
setSession('order_price_addon', price);
updateTotal();
});
কিন্তু কোনও কারণে - এটি কাজ করে না - কোনও ধারণা?