PHP Ajax হল একটি শক্তিশালী প্রযুক্তি যা PHP এবং Ajax (Asynchronous JavaScript and XML) ব্যবহার করে ডায়নামিক ওয়েব পেজ তৈরি করার জন্য ব্যবহৃত হয়। Ajax এর মাধ্যমে ওয়েব পেজের নির্দিষ্ট অংশে ডেটা লোড করা বা আপডেট করা যায় পেজ রিফ্রেশ ছাড়াই, যার ফলে ব্যবহারকারীর অভিজ্ঞতা উন্নত হয়। এবং PHP একটি সার্ভার সাইড ভাষা হিসেবে ব্যবহার করা হয় যা ক্লায়েন্ট সাইডে Ajax কলের মাধ্যমে ডেটা প্রসেস এবং ফেরত পাঠানোর কাজ করে।
PHP Ajax এর মৌলিক ধারণা:
Ajax হল এমন একটি প্রযুক্তি যা ওয়েব পেজের সাথে ব্যবহারকারী ইন্টারঅ্যাকশনকে আরও ডায়নামিক এবং দ্রুততর করে তোলে। এটি JavaScript এবং XMLHttpRequest ব্যবহার করে সার্ভারের সাথে যোগাযোগ করে, তবে এটি পুরো পেজকে রিফ্রেশ না করে শুধুমাত্র প্রয়োজনীয় ডেটা লোড বা আপডেট করে।
PHP Ajax এর মাধ্যমে, আপনি ক্লায়েন্ট সাইডে (যেমন ব্রাউজারে) JavaScript ব্যবহার করে Ajax কল করতে পারেন এবং PHP এর মাধ্যমে সার্ভার সাইডে ডেটা প্রসেস করতে পারেন। এর পর PHP সার্ভার থেকে ডেটা ফেরত পাঠাবে এবং তা JavaScript দ্বারা ক্লায়েন্ট সাইডে প্রদর্শন করা হবে।
PHP Ajax উদাহরণ:
1. HTML ফাইল:
PHP Ajax Example
PHP Ajax Example
ব্যাখ্যা:
- HTML Part: এখানে একটি ইনপুট ফিল্ড এবং একটি বাটন রয়েছে। যখন ব্যবহারকারী বাটনে ক্লিক করবে, তখন fetchData() ফাংশন কল হবে।
- JavaScript (Ajax):
fetchData()ফাংশনটি JavaScript দিয়ে লিখিত, যা ইনপুট থেকে ইউজারের নাম নেয় এবং$.ajax()ফাংশনের মাধ্যমে process.php ফাইলে একটি POST রিকোয়েস্ট পাঠায়। successCallback: সার্ভার থেকে সফলভাবে ডেটা ফিরে আসলে, সেটি#resultডিভে প্রদর্শিত হবে।
2. PHP ফাইল (process.php):
ব্যাখ্যা:
- PHP Part: এই ফাইলটি Ajax কলের মাধ্যমে প্রাপ্ত
usernameইনপুট ডেটা গ্রহণ করে। যদি ইউজার নামadminহয়, তাহলে একটি নির্দিষ্ট বার্তা প্রদর্শিত হবে, এবং অন্যথায়, সাধারণ বার্তা দেখানো হবে। - Data Handling: এই ক্ষেত্রে, ডেটা একটি ডামি ডেটা হিসেবে সরবরাহ করা হয়েছে, তবে আপনি এটি ডাটাবেস থেকে ডেটা ফেচ করতে ব্যবহার করতে পারেন।
PHP Ajax এর সুবিধা:
- পেজ রিফ্রেশ ছাড়াই ডেটা লোড করা: Ajax এর মাধ্যমে, সার্ভার থেকে ডেটা লোড বা আপডেট করা হয়, কিন্তু পুরো পেজ রিফ্রেশ হয় না, যা ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।
- ফাস্ট এবং সিম্পল: Ajax এর মাধ্যমে শুধুমাত্র সেই অংশটি লোড করা হয় যা পরিবর্তিত হচ্ছে, পুরো পেজ রিফ্রেশ না করায় এটি দ্রুত এবং কার্যকর।
- ইন্টারঅ্যাকটিভ ফিচার যোগ করা: PHP Ajax ব্যবহার করে আপনি ওয়েব পেজে ইন্টারঅ্যাকটিভ ফিচার যেমন অনুসন্ধান, ফর্ম ভ্যালিডেশন, ইনস্ট্যান্ট ডেটা আপডেট ইত্যাদি সহজেই যুক্ত করতে পারেন।
- ব্যবহারকারী অভিজ্ঞতা উন্নত: Ajax এর মাধ্যমে ওয়েব পেজে কোনো প্রকার বিলম্ব বা স্লো নেভিগেশন ছাড়াই দ্রুত ডেটা প্রদর্শন করা সম্ভব, যা ব্যবহারকারী অভিজ্ঞতা উন্নত করে।
PHP Ajax-এর আরো উন্নত ব্যবহার:
- ফর্ম ভ্যালিডেশন: আপনি Ajax ব্যবহার করে ফর্মের ইনপুট ডেটা পরীক্ষা করতে পারেন। উদাহরণস্বরূপ, ফর্ম সাবমিট করার আগে, Ajax কলের মাধ্যমে ডেটা ভ্যালিডেট করা যায় এবং ত্রুটি বার্তা দেখানো যায়।
- ডেটাবেস ইন্টারঅ্যাকশন: Ajax এর মাধ্যমে আপনি সার্ভারে ডেটা পাঠাতে এবং সেটি ডাটাবেসে সেভ করতে পারেন। উদাহরণস্বরূপ, PHP এবং MySQL ব্যবহার করে ডেটাবেসে ডেটা ইনসার্ট, আপডেট বা ডিলিট করা।
- রিয়েল-টাইম ডেটা: Ajax ব্যবহার করে আপনি রিয়েল-টাইম ডেটা যেমন চ্যাট অ্যাপ্লিকেশন বা নোটিফিকেশন সিস্টেম তৈরি করতে পারেন।
সারসংক্ষেপ:
PHP Ajax একটি শক্তিশালী প্রযুক্তি যা PHP এবং Ajax এর সমন্বয়ে ওয়েব অ্যাপ্লিকেশনকে আরও ডায়নামিক এবং ইন্টারঅ্যাকটিভ করে তোলে। Ajax ব্যবহার করে PHP সার্ভার থেকে ডেটা অ্যাসিঙ্ক্রোনাসভাবে লোড করা যায়, ফলে পেজ রিফ্রেশ ছাড়াই ফিচারগুলি আপডেট হয়। এটি ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করে এবং ওয়েব অ্যাপ্লিকেশনকে দ্রুত এবং ইন্টারঅ্যাকটিভ করে তোলে।
AJAX এমন একটি কৌশল যার মাধ্যমে আপনি একটি ওয়েব পেজ এর সম্পূর্ণ অংশ পুনরায় লোড করা ছাড়াই আপনার কাংখিত অংশকে আপডেট বা পরিবর্তন করতে পারেন। সুতরাং AJAX এর ব্যবহার আপনার ওয়েব পেজকে দ্রুত লোড করে এবং এর ফলে আপনার সাইটের পার্ফরমেন্সও তুলনামূলক অনেক বৃদ্ধি পায়।
AJAX কি?
AJAX এর পূর্ণরূপঃ Asynchronous JavaScript And XML।
ডাইনামিক এবং ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরির জন্য AJAX একটি ওয়েব ডেভেলপমেন্ট কৌশল। AJAX এর ব্যবহার একটি ওয়েব পেজকে অধিক দ্রুত গতির এবং শক্তিশালী করে তুলে।
আপনি AJAX এর সাথে এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট ব্যবহার করে আরও আকর্ষণীয় এবং আরও ইন্টারেক্টিভ(interactive) ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
AJAX ব্যবহত একটি ওয়েব পেজ আপনার অগোচরেই(in the background) ওয়েব সার্ভারের সাথে আসমনিয়তভাবে(asynchronous) ক্ষুদ্র ক্ষুদ্র তথ্য বিনিময় এর মাধ্যমে নিজেকে আপডেট করতে সক্ষম।
অর্থাৎ এটি সম্পূর্ণ ওয়েব পেজকে রিলোড না করেই, ওয়েব পেজের একটি অংশকে আপডেট করতে পারে।
ক্লাসিক ওয়েব পেজ যেগুলোতে AJAX এর ব্যবহার নাই সেই সকল ওয়েব পেজের কোনো ক্ষুদ্র অংশ পরিবর্তন করতে হলেও সম্পূর্ণ ওয়েব পেজ পুনরায় লোড করতে হয়।
সুতরাং আমরা বলতে পারি AJAX এর আবিষ্কার ওয়েব ডেভেলপমেন্টে নতুন এক দিগন্তের সূচনা করেছে।
কিভাবে AJAX কাজ করে?
AJAX ইন্টারনেট স্ট্যান্ডার্ড মেনে চলে
ইন্টারনেট স্ট্যান্ডার্ড এর উপর ভিত্তি করে AJAX এর আবিষ্কার এবং এটি নিম্নোক্ত কম্পোনেন্ট এর সমন্বয়ে গঠিত হয়ঃ
- XMLHttpRequest object - সার্ভারের সাথে অসমনিয়তভাবে(asynchronously) তথ্য বিনিময় করে।
- JavaScript/DOM - ওয়েব পেজকে ডায়নামিক করে তুলে।
- HTML - তথ্য উপস্থাপন করে।
- CSS - তথ্য স্টাইল করে।
- XML - তথ্য স্থানান্তর করে।
AJAX অ্যাপ্লিকেশন প্ল্যাটফর্ম এবং ব্রাউজার হতে স্বাধীন।
AJAX ব্যবহৃত কিছু ওয়েব অ্যাপ্লিকেশনের উদাহরণঃ Gmail, Google, Youtube, Facebook ইত্যাদি।
AJAX সম্মন্ধে আরও জাতে AJAX টিউটোরিয়াল ভিজিট করুন।
অধিক ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে AJAX ব্যবহৃত হয়।
পিএইচপি এবং AJAX এর উদাহরণ
এখন আমরা একটি উদাহরণের সাহায্যে এজ্যাক্স এবং পিএইচপির ব্যবহার দেখবো। এক্ষেত্রে ইনপুট ফিল্ডে অক্ষর টাইপ করার সঙ্গে সঙ্গে AJAX পিএইচপি ফাইল থেকে একগুচ্ছ সাজেশন দেখাবে।
উদাহরণঃ AJAX ব্যবহত এপ্লিকেশনের এইচটিএমএল অংশ
kt_satt_skill_example_id=521
উপরের উদাহরনে ইউজার যখন ইনপুট ফিল্ডে কোনো অক্ষর টাইপ করে তখন showSuggestion() ফাংশনটি সম্পাদিত হয়। এই ফাংশনটি onkeyup ইভেন্টের মাধ্যমে সম্পাদিত হয়।
kt_satt_skill_example_id=523
কোডের ব্যাখ্যাঃ
প্রথমেই আমরা ইনপুট ফিল্ডটি ফাঁকা কিনা string.length == 0 এর মাধ্যমে চেক করে নিব। যদি এটি ফাঁকা হয় তাহলে টেক্সট প্লেসহোল্ডার এর কন্টেন্ট মুছে যায় এবং প্রোগ্রামের নিয়ন্ত্রণ showSuggestion() ফাংশন থেকে বের হয়ে যায়।
অপরদিকে ইনপুট ফিল্ডটি যদি ফাঁকা না হয় সেক্ষেত্রে নিম্নের ঘটনা গুলো ঘটবেঃ
- একটি XMLHttpRequest অবজেক্ট তৈরি করবে।
- কার্যসম্পাদনের জন্য সার্ভার প্রস্তুত হলে এটি একটি ফাংশন তৈরি করবে।
- সার্ভারে অবস্থিত "suggestion.php" ফাইলে তথ্যের জন্য একটি অনুরোধ পাঠাবে।
- লক্ষ্য করুন আমরা "suggestion.php" ফাইলের সাথে একটি প্যারামিটার i যুক্ত করেছি যা সার্ভারে একটি string ভ্যারিয়েবল পাঠায়।
- string ভ্যারিয়েবলটি ইনপুট বক্সের কন্টেন্ট ধারন করে।
পিএইচপি ফাইল
আমরা এই ফাইলটি "suggestion.php" নামে সংরক্ষন করবো।
পিএইচপি ফাইলটি অ্যারের মধ্যে ইনপুট ফিল্ডের নাম/নামসমূহ আছে কিনা চেক করে। মিল খুঁজে পেলে অনুরূপ নামগুলো ব্রাউজারে ফেরত পাঠায়ঃ
kt_satt_skill_example_id=526
ডেটাবেজ এর সাথে ইন্টারেক্টিভ(interactive) এবং ডাইনামিক যোগাযোগ তৈরির জন্য আমরা AJAX ব্যবহার করি। আপনি AJAX ব্যবহার করে ডেটাবেজ টেবিল থেকে সম্পূর্ণ তথ্য কুয়েরি না করে, বরং আপনি ক্ষুদ্র ক্ষুদ্র তথ্য কুয়েরি করতে পারেন।
AJAX এবং MySQL এর উদাহরণ
আমাদের এই উদাহরণে দেখবো, AJAX ব্যবহার করে আমরা কিভাবে আমরা ডেটাবেজ থেকে সম্পূর্ণ তথ্য অ্যাক্সেস না করে ক্ষুদ্র ক্ষুদ্র তথ্য অ্যাক্সেস করতে পারি। উদাহরণের ব্যাখ্যার জন্য আমরা সম্পূর্ণ কোড তিনভাগে ভাগ করেছিঃ এইচটিএমএল কোড, AJAX কোড এবং পিএইচপি কোড।
kt_satt_skill_example_id=530
উপরের উদাহরণে ইউজার যখন ড্রপডাইন তালিকা থেকে একটি বইয়ের নাম সিলেক্ট করবে, তখন showBookDetails() ফাংশনটি সম্পাদিত হবে এবং উক্ত বইয়ের বিস্তারিত তথ্য প্রদর্শিত হবে। onchange ইভেন্ট এর মাধ্যমে এই ফাংশনটি সম্পাদিত হয়।
kt_satt_skill_example_id=531
কোডের ব্যাখ্যাঃ
প্রথমেই আমরা চেক করে নিব ইউজার কোনো বইয়ের নাম সিলেক্ট করেছে কিনা। যদি না করে থাকে তাহলে ফাংশনটি সম্পাদিত হবে না।
অপরদিকে ইউজার যদি কোনো বইয়ের নাম সিলেক্ট করে থাকে তাহলে নিম্নের ঘটনা সমুহ ঘটবেঃ
- একটি XMLHttpRequest অবজেক্ট তৈরি হবে।
- কার্যসম্পাদনের জন্য সার্ভার প্রস্তুত হলে এটি একটি ফাংশন তৈরি করবে।
- সার্ভারে অবস্থিত "bookdetails.php" ফাইলে তথ্যের জন্য অনুরোধ পাঠায়।
- লক্ষ্য করুন আমরা "bookdetails.php" ফাইলের সাথে একটি প্যারামিটার i যুক্ত করেছি যা সার্ভারে একটি string ভ্যারিয়েবল পাঠায়।
- string ভ্যারিয়েবলটি ইনপুট বক্সের কন্টেন্ট ধারন করে।
পিএইচপি ফাইল
উপরের জাভাস্ক্রিপ্ট কোড এর মাধ্যমে এই পিএইচপি ফাইল(bookdetails.php) এর সাথে যোগাযোগ সৃষ্টি করা হয় যা মাইএসকিউএল ডেটাবেজ সার্ভারে একটি কুয়েরি পাঠাবে এবং প্রাপ্ত ফলাফল সমুহ একটি এইচটিএমএল টেবিলের মাধ্যমে প্রদর্শন করানো হবেঃ
kt_satt_skill_example_id=532
কোডের ব্যাখ্যা
জাভাস্ক্রিপ্ট থেকে কুয়েরিটি যখন পিএইচপি ফাইলে পাঠানো হয় তখন নিন্মের ঘটনা সমুহ ঘটেঃ
- AJAX কর্তৃক পাঠানো বইয়ের নাম গ্রহন করবে।
- MySQL সার্ভারের সাথে একটি সংযোগ তৈরি করে।
- AJAX কর্তৃক পাঠানো বইয়ের তথ্য খুজে বের করে।
- একটি এইচটিএমএল টেবিল তৈরি হয় এবং খুঁজে পাওয়া বইয়ের তথ্যসহ ব্রাউজারে প্রদর্শিত হয়।
আমাদের উদাহরণে আমরা নিম্নের এই ডেটাবেজটি ব্যবহার করেছিঃ
| আইডি | বইয়ের নাম | লেখক | দাম | সারাংশ |
|---|---|---|---|---|
| ১ | উজান | শীর্ষেন্দু মুখোপাধ্যায় | ৫০.০০৳ | দুই বাংলার জনপ্রিয় ঔপন্যাসিক শীর্ষেন্দু মুখোপাধ্যায়ের উপন্যাস "উজান"। দারিদ্র্যক্লিষ্ট একটি পরিবারের সচ্ছলতার জন্য প্রাণান্তকর লড়াইয়ের বর্ণনা দিয়েছে লেখক গ্রন্থটিতে। |
| ২ | মেঘ বৃষ্টি আলো | সুনীল গঙ্গোপাধ্যায় | ৬০.০০৳ | তার পোশাকে এমন কিছু লোলুপা করার ব্যবস্থা নেই যে রাস্তার সব লোক তার দিকে হাঁ করে তাকিয়ে থাকবে। সে এমনিই মোটামুটি সুশ্রী তরুণী। কিন্তু পুরুষ প্রধান শহরে লোভী দৃষ্টি টানবার পক্ষে যথেষ্ট। সমাজে মেয়েদের বেড়ে উঠতে হয় নানা প্রতিবন্ধকতা মোকাবিলা করে। লেখক উপন্যাসটিতে অনুরাধা নামের একটি মেয়ের ঘটনা তুলে ধরেছেন সাবলীলভাবে। |
| ৩ | ভালোবেসে তোমাকে | সেলিনা ইসলাম | ৫০.০০৳ | ভালোবাসা অর্জন করতে গেলেও ভালবাসা দরকার। জলের স্রোতে ভেসে যাওয়া কোনো মানুষ যদি একটি কচুরিপানাও পায় বেঁচে থাকার শেষ চেষ্টায় সেই কচুরিপানা ধরেই কূলের সন্ধান করে। লেখক এই উপন্যাসটিতে এক অসহায় নারীজীবনের সার্থকতার কথা উপস্থাপন করেছেন। |
| ৪ | আনন্দ সহচরী | অরুণ চৌধুরী | ৪৫.০০৳ | ভালোবাসা পাওয়া- অথচ ভালোবাসাহীন জীবন কাটনো অসহায় নারীদের নিয়ে লেখা এই বই। লেখক এই বইতে এফডিসি কেন্দ্রিক নারী সহশিল্পীদের সংগ্রামী জীবনকে তুলে ধরেছেন। |
| ৫ | বিষাদ সিন্ধু | মীর মশাররফ হোসেন | ৮৫.০০৳ | দামেস্ক'র রাজা মাবিয়ার ছেলে এজিদের কামনা-বাসনা, ব্যর্থতা প্রতিহিংসা আর হাসান হোসেনের করুণ কাহিনী নিয়ে রচিত এই উপন্যাস বিষাদ সিন্ধু। |
| ৬ | ইতি... | ফারজানা রুম্পা | ২০.০০৳ | ছেলেটি ভালো আছে তার লালচুলো প্রেমিক নিয়ে। আর মেয়েটি ভালো থাকার চেষ্টা করে যাচ্ছে। মেয়েটি এখন বুঝেছে যে প্রতারনা করে তার জন্য ভালো থাকা সহজ, আর যে প্রতারিত হয় তার জন্য কঠিন। ছেলেটির প্রতি ঘৃনায় মেয়েটি একটি চিঠি লিখেছিল যার শেষ হয়েছিল বিদায় লিখে ইতি নয়। এই নিয়ে ফারজানা রুম্পার উপন্যাস ইতি... |
ডেটাবেজটি ডাউনলোড করুন।
আপনি উপরের উদাহরণের এইচটিএমএল এবং জাভাস্ক্রিপ্ট কোড গুলোর সমন্বয়ে একটি ফাইল এবং পিএইচপি কোডগুলোর জন্য একটি ফাইল তৈর করে Ajax সম্বলিত এইচটিএমএল ফাইলটি রান করালে বাউজারে নিম্নের ন্যায় ফলাফল দেখবেন।
AJAX (Asynchronous JavaScript and XML) একটি ওয়েব প্রযুক্তি যা ওয়েব পেজকে ব্যবহারকারীর সাথে ইন্টারঅ্যাকটিভভাবে যোগাযোগ করতে সক্ষম করে। AJAX এর মাধ্যমে ওয়েব পেজের কিছু অংশের ডেটা সার্ভারের সাথে যোগাযোগের মাধ্যমে আপডেট করা সম্ভব হয়, যেটি পেজটি রিফ্রেশ না করেই হয়। XML (Extensible Markup Language) হল একটি ডেটা বিনিময়ের ফরম্যাট, যা AJAX এর সাথে ডেটা প্রেরণ এবং গ্রহণ করার জন্য ব্যবহৃত হয়।
এখানে আমরা AJAX XML এর ব্যবহার দেখব এবং দেখব কিভাবে PHP এবং AJAX ব্যবহার করে XML ফাইল থেকে ডেটা নিয়ে ওয়েব পেজে প্রদর্শন করা যায়।
AJAX এবং XML এর মধ্যে সম্পর্ক
AJAX ব্যবহার করে XML ফাইলের সাথে সার্ভারের অদৃশ্য যোগাযোগ করা যায়। সার্ভার থেকে XML ডেটা গ্রহণ করে, JavaScript এর মাধ্যমে তা প্রক্রিয়া করা হয় এবং ওয়েব পেজে প্রদর্শন করা হয়। সাধারণত, XMLHttpRequest অবজেক্ট ব্যবহার করে AJAX রিকোয়েস্ট পাঠানো হয়, এবং সার্ভার থেকে XML ডেটা ফেরত আসলে তা JavaScript দিয়ে প্রসেস করা হয়।
AJAX XML উদাহরণ
এখানে একটি উদাহরণ দেওয়া হলো যেখানে PHP সার্ভার থেকে XML ডেটা নেয় এবং AJAX এর মাধ্যমে ওয়েব পেজে প্রদর্শন করে।
1. PHP স্ক্রিপ্ট (data.php) – XML ডেটা তৈরি করা
এই স্ক্রিপ্টটি XML ডেটা তৈরি করে যা ক্লায়েন্ট সাইডে পাঠানো হবে।
');
$item1 = $xml->addChild('item');
$item1->addChild('name', 'John');
$item1->addChild('age', '28');
$item2 = $xml->addChild('item');
$item2->addChild('name', 'Jane');
$item2->addChild('age', '22');
// Output the XML
echo $xml->asXML();
?>
এখানে, SimpleXMLElement ব্যবহার করে একটি XML ডকুমেন্ট তৈরি করা হয়েছে। দুটি item ডাটা তৈরি করা হয়েছে, যেখানে নাম এবং বয়স রয়েছে।
2. HTML এবং JavaScript (index.html) – AJAX রিকোয়েস্ট এবং ডেটা প্রদর্শন
এখানে, JavaScript দিয়ে AJAX রিকোয়েস্ট পাঠানো হবে এবং সার্ভার থেকে প্রাপ্ত XML ডেটা প্রদর্শন করা হবে।
AJAX XML Example
AJAX XML Example
ব্যাখ্যা:
- XMLHttpRequest: এটি AJAX রিকোয়েস্টের জন্য ব্যবহৃত হয়। এখানে
GETমেথড ব্যবহার করা হয়েছেdata.phpথেকে ডেটা আনার জন্য। - xhr.onload: এটি সেই ফাংশন যা সার্ভার থেকে রেসপন্স আসার পর কল হয়। এখানে, আমরা
xhr.responseXMLব্যবহার করে XML ডেটা নিয়ে আসছি। - getElementsByTagName("item"): এটি XML ডকুমেন্টের মধ্যে সমস্ত
itemট্যাগকে নির্বাচন করে। এর মাধ্যমে প্রতিটিitemট্যাগের ভিতরের নাম এবং বয়স পাওয়া যায়। - Displaying data: প্রতিটি
itemএর মধ্যে থাকাnameএবংageডেটা টেনে নিয়ে HTML এ একটি তালিকায় দেখানো হয়।
3. সম্পূর্ণ Flow:
- HTML পেজে একটি বাটন দেওয়া হয়েছে যেটি ক্লিক করলে AJAX রিকোয়েস্ট প্রেরণ করা হবে।
- PHP স্ক্রিপ্ট
data.phpXML ফরম্যাটে ডেটা রিটার্ন করবে। - JavaScript কোড সেই XML ডেটা প্রসেস করবে এবং HTML পেজে সেগুলো প্রদর্শন করবে।
AJAX এবং XML এর সুবিধা:
- Asynchronous Communication: AJAX এর মাধ্যমে ওয়েব পেজের কিছু অংশ আপডেট করা সম্ভব হয়, এবং পেজ পুরোপুরি রিফ্রেশ না করেই ডেটা পরিবর্তন করা যায়।
- Improved User Experience: সার্ভারের সাথে যোগাযোগ ঘটলেও পেজ রিফ্রেশ হওয়ার প্রয়োজন না থাকায় ইউজারের অভিজ্ঞতা উন্নত হয়।
- Data in XML Format: XML একটি স্ট্যান্ডার্ড ফরম্যাট যা সিস্টেমের মধ্যে ডেটা বিনিময়ে ব্যবহৃত হয়। এটি প্ল্যাটফর্ম ও প্রোগ্রামিং ভাষার মধ্যে ডেটা এক্সচেঞ্জ সহজ করে।
এই উদাহরণে আমরা দেখলাম কিভাবে PHP এবং AJAX XML ব্যবহার করে ওয়েব পেজে ডাইনামিকভাবে ডেটা প্রদর্শন করা যায়। AJAX এবং XML একসাথে ওয়েব ডেভেলপমেন্টে খুবই শক্তিশালী প্রযুক্তি, যা সার্ভারের সাথে অবিচ্ছিন্ন যোগাযোগ করতে সক্ষম এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সহায়তা করে।
AJAX ব্যবহার করে আপনি ইউজারদের জন্য অধিক বন্ধুসুলভ এবং ইন্টারেক্টিভ অনুসন্ধান ওয়েব এপ্লিকেশন তৈরি করতে পারেন।
AJAX ব্যবহার করে সরাসরি অনুসন্ধান
টিউটরিয়ালের এই পর্যায়ে আমরা আপনাকে দেখাবো কিভাবে আপনি আমাদের ওয়েব-সাইটের টিউটোরিয়ালসমূহ সরাসরি সার্চ করে খুঁজে পাবেন।
এক্ষেত্রেও আমরা পূর্বের ন্যায় কোডসমূহকে তিন ভাগে বিভক্ত করবোঃ এইচটিএমএল কোড, জাভাস্ক্রিপ্ট(AJAX) কোড এবং পিএইচপি কোড এবং তথ্য স্টোর বা বিনিময় এর জন্য একটি XML ফাইল ব্যবহার করবো। সুতরাং দেরি না করে চলুন কোডিং করা শুরু করি।
kt_satt_skill_example_id=533
উপরের উদাহরণে ইউজার যখন ইনপুট বক্সে কোন অক্ষর টাইপ করবে, তখন showlink() ফাংশনটি সম্পাদিত হবে এবং ইনপুটকৃত অক্ষর দিয়ে শুরু সকল লিংক টাইটেল এর সাজেশন ড্রপ ডাউন আকারে দেখাবে। onkeyup ইভেন্ট এর মাধ্যমে এই ফাংশনটি সম্পাদিত হয়।
kt_satt_skill_example_id=534
কোডের ব্যাখ্যাঃ
প্রথমেই আমরা ইনপুট ফিল্ডটি ফাঁকা কিনা string.length == 0 এর মাধ্যমে চেক করে নিব। যদি এটি ফাঁকা হয় তাহলে টেক্সট প্লেসহোল্ডার এর কন্টেন্ট মুছে যায় এবং প্রোগ্রামের নিয়ন্ত্রণ showSuggestion() ফাংশন থেকে বের হয়ে যায়।
অপরদিকে ইনপুট ফিল্ডটি যদি ফাঁকা না হয় সেক্ষেত্রে নিম্নের ঘটনা গুলো ঘটবেঃ
- একটি XMLHttpRequest অবজেক্ট তৈরি করবে।
- কার্যসম্পাদনের জন্য সার্ভার প্রস্তুত হলে এটি একটি ফাংশন তৈরি করবে।
- সার্ভারে অবস্থিত "searchResult.php" ফাইলে তথ্যের জন্য একটি অনুরোধ পাঠাবে।
- লক্ষ্য করুন আমরা "searchResult.php" ফাইলের সাথে একটি প্যারামিটার p যুক্ত করেছি যা সার্ভারে একটি string ভ্যারিয়েবল পাঠায়।
- string ভ্যারিয়েবলটি ইনপুট বক্সের কন্টেন্ট ধারন করে।
পিএইচপি ফাইল
উপরের জাভাস্ক্রিপ্ট কোড এর মাধ্যমে এই পিএইচপি ফাইল(searchResult.php) এর সাথে যোগাযোগ সৃষ্টি করা হয়।
"searchResult.php" ফাইলের সোর্স কোড ইনপুট বক্সের স্ট্রিং এর সাপেক্ষে XML ফাইলে লিংক টাই্টেল এর জন্য একটি কুয়েরি পাঠায় এবং অনুসন্ধানকৃত স্ট্রিং এর সাথে মিল সম্পন্ন সকল টাইটেল ব্রাউজারে ফেরত পাঠায়ঃ
kt_satt_skill_example_id=535
কোডের ব্যাখ্যা
জাভাস্ক্রিপ্ট(AJAX) থেকে কুয়েরিটি যখন পিএইচপি ফাইলে পাঠানো হয় তখন নিম্নের ঘটনাসমুহ ঘটেঃ
- AJAX কর্তৃক পাঠানো প্যারামিটার গ্রহন করে।
- একটি XML ডোম(DOM) অবজেক্ট তৈরি করে
- সকল
এলিমেন্ট এর মধ্য থেকে AJAX কর্তৃক পাঠানো টেক্সট এর তথ্য খুজে বের করে। - প্রাপ্ত ফলাফল ব্রাউজারে ফেরত পাঠায়।
- $suggestion ভ্যারিয়েবলে সঠিক " url" এবং "title" সেট করা হয়। যদি একের অধিক টাইটেল এর সাথে মিল খুঁজে পাওয়া যায় তাহলে সকল টাইটেলকেই(url সহ) ভ্যারিয়বলে যোগ করা হয়।
- যদি কোনো মিল না পাওয়া যায়, সে ক্ষেত্রে "দুঃখিত কোনো সাজেশন নেই!" ম্যাসেজটি দেখাবে।
উপরের কোড গুলোর সমন্বয়ে নিম্নে আমরা একটি সরাসরি অনুসন্ধান এপ্লিকেশন তৈরি করেছি যেখানে ব্যবহারকারী ইনপুট বক্সে টাইপ করা শুরু করলেই তাকে সম্ভাব্য সাজেশন দেখাবে।
সাধারন অনুসন্ধানের তুলনায় সরাসরি অনুসন্ধান অনেক সুবিধাজনক।
- আপনার টাইপ এর ভিত্তিতে আপনি ফলাফল দেখতে পাবেন।
- আপনি যত বেশী টাইপ করবেন ফলাফল এর পরিমানও তত সংকির্ণ হতে থাকবে।
- ফলাফল এর পরিমান যদি সংকীর্ণ হয়ে যায়, সেক্ষেত্রে অধিক ফলাফল এর জন্য কিছু ক্যারেক্টার মুছে ফেলুন।
RSS ফিড পড়ার জন্য RSS Reader ব্যবহার করা হয়।
AJAX ব্যবহার করে RSS Feed লোড
আমাদের এই উদাহরণে আমরা দেখবো কিভাবে AJAX এর মাধ্যমে একটি ওয়েব পেজকে পুনরায় লোড করা ছাড়াই RSS Feed লোড করা যায়।
এক্ষেত্রেও আমরা পূর্বের ন্যায় কোডসমূহকে তিন ভাগে বিভক্ত করবোঃ এইচটিএমএল কোড, জাভাস্ক্রিপ্ট(AJAX) কোড এবং পিএইচপি কোড। সুতরাং দেরি না করে চলুন কোডিং করা শুরু করি।
kt_satt_skill_example_id=540
উপরের উদাহরণে ইউজার যখন ড্রপডাইন তালিকা থেকে একটি আরএসএস(RSS) ফিড সিলেক্ট করবে, তখন showRSSFeed() ফাংশনটি সম্পাদিত হবে এবং সংবাদ শিরোনাম প্রদর্শিত হবে। onchange ইভেন্ট এর মাধ্যমে এই ফাংশনটি সম্পাদিত হয়।
kt_satt_skill_example_id=541
কোডের ব্যাখ্যাঃ
প্রথমেই আমরা অপশন ভ্যালু সিলেক্ট করা হয়েছে কিনা string.length == 0 এর মাধ্যমে চেক করে নিব। যদি এটি ফাঁকা হয় তাহলে প্রোগ্রামের নিয়ন্ত্রণ showSuggestion() ফাংশন থেকে বের হয়ে যায়।
অপরদিকে যদি যেকোন একটি অপশন ভ্যালু সিলেক্ট করা হয় সেক্ষেত্রে নিম্নের ঘটনা গুলো ঘটবেঃ
- একটি XMLHttpRequest অবজেক্ট তৈরি করবে।
- কার্যসম্পাদনের জন্য সার্ভার প্রস্তুত হলে এটি একটি ফাংশন তৈরি করবে।
- সার্ভারে অবস্থিত "searchResult.php" ফাইলে তথ্যের জন্য একটি অনুরোধ পাঠাবে।
- লক্ষ্য করুন আমরা "searchResult.php" ফাইলের সাথে একটি প্যারামিটার p যুক্ত করেছি যা সার্ভারে একটি string ভ্যারিয়েবল পাঠায়।
- string ভ্যারিয়েবলটি সিলেক্ট বক্সের অপশন ভ্যালু ধারন করে।
পিএইচপি ফাইল
উপরের জাভাস্ক্রিপ্ট কোড এর মাধ্যমে এই পিএইচপি ফাইল(rssfeed.php) এর সাথে যোগাযোগ সৃষ্টি করা হয়।
kt_satt_skill_example_id=542
জাভাস্ক্রিপ্ট যখন RSS Feed এর জন্য পিএইচপি ফাইলে অনুরোধ পাঠায় তখন নিম্নোক্ত প্রক্রিয়াসমূহ সম্পন্ন হয়ঃ
- প্রথমেই AJAX কর্তৃক পাঠান প্যারামিটার গ্রহণ করবে।
- কোন ফিডটি সিলেক্ট করা হয়েছে পরিক্ষা করে দেখবে।
- একটি XML DOM অবজেক্ট তৈরি করবে।
- $xml ভ্যাবিয়েবল এর RSS ডকুমেন্ট লোড করবে।
এলিমেন্ট থেকে এলিমেন্টসমুহ খুঁজে বের করবে। - এলিমেন্ট থেকে এলিমেন্ট সমুহ খুঁজে বের করেবে।
আপনি উপরের উদাহরণের এইচটিএমএল এবং জাভাস্ক্রিপ্ট কোড গুলোর সমন্বয়ে একটি ফাইল এবং পিএইচপি কোডগুলোর জন্য একটি ফাইল তৈর করে Ajax সম্বলিত এইচটিএমএল ফাইলটি রান করালে বাউজারে নিম্নের ন্যায় ফলাফল দেখবেন।
AJAX এর মাধ্যমে আরএসএস(RSS) ফিড লোড করার জন্য যেকোন একটি সংবাদ সিলেক্ট করুনঃ
আরএসএস(RSS) ফিড সিলেক্ট করুন গুগল বাংলা সংবাদ কালের কণ্ঠ সংবাদ
আরএসএস(RSS) ফিডটি এখানে তালিকাভুক্ত হবে.
AJAX ব্যবহার করে ভোট গ্রহণ
এই অধ্যায়ে আমরা দেখবো AJAX ব্যবহার করে কিভাবে একটি ডায়ানামিক ভোট গ্রহণ সিস্টেম তৈরি করা যায়।
এক্ষেত্রেও আমরা পূর্বের ন্যায় কোডসমূহকে তিন ভাগে বিভক্ত করবোঃ এইচটিএমএল কোড, জাভাস্ক্রিপ্ট(AJAX) কোড এবং পিএইচপি কোড। সুতরাং দেরি না করে চলুন কোডিং করা শুরু করি।
kt_satt_skill_example_id=547
উপরের উদাহরণে ইউজার যখন কোনো একটি রেডিও বাটন সিলেক্ট করবে, তখন vote() ফাংশনটি সম্পাদিত হবে এবং ভোটের ফলাফল প্রদর্শিত হবে। onclick ইভেন্ট এর মাধ্যমে এই ফাংশনটি সম্পাদিত হয়।
kt_satt_skill_example_id=549
কোডের ব্যাখ্যাঃ
যেকোন একটি রেডিও বাটন সিলেক্ট করলে vote() ফাংশনটি সম্পাদিত হয়।
vote() ফাংশনের মাধ্যমে নিম্নোক্ত প্রক্রিয়াসমূহ সম্পন্ন হয়।
- একটি XMLHttpRequest অবজেক্ট তৈরি করবে।
- কার্যসম্পাদনের জন্য সার্ভার প্রস্তুত হলে এটি একটি ফাংশন তৈরি করবে।
- সার্ভারে অবস্থিত "poll_vote.php" ফাইলে একটি অনুরোধ পাঠাবে।
- লক্ষ্য করুন আমরা "poll_vote.php" ফাইলের সাথে একটি প্যারামিটার poll_vote যুক্ত করেছি যা সার্ভারে একটি integer ভ্যারিয়েবল পাঠায়।
- integer ভ্যারিয়েবলটি রেডিও বাটনের ভ্যালু ধারন করে।
পিএইচপি ফাইল
উপরের জাভাস্ক্রিপ্ট কোড এর মাধ্যমে এই পিএইচপি ফাইল(poll_vote.php) এর সাথে যোগাযোগ সৃষ্টি করা হয়।
kt_satt_skill_example_id=553
Read more