জিইটি অনুরোধে একই প্যারামিটার নামের জন্য একাধিক মান পাস করার সঠিক উপায়


193

জিইটি অনুরোধে একই প্যারামিটার নামের জন্য একাধিক মান পাস করার সঠিক উপায় কী তা আমি অনুসন্ধান করছি।

আমি এর মতো ইউআরএল দেখেছি:

http://server/action?id=a&id=b

এবং আমি এর মতো ইউআরএল দেখেছি:

http://server/action?id=a,b

আমার বোঝাটি হ'ল প্রথমটি সঠিক, তবে আমি এর জন্য কোনও রেফারেন্স পাই না। আমি এইচটিপি স্পেকটির দিকে নজর রেখেছি তবে কোনও ইউআরএল-এর 'ক্যোয়ারী' অংশটি কীভাবে তৈরি করা উচিত সে সম্পর্কে কিছুই দেখতে পেলাম না।

আমি এমন কোনও উত্তর চাই না যা বলেছে "হয় ঠিক আছে" - যদি আমি একটি ওয়েবসার্ভিস তৈরি করি তবে আমি জানতে চাই যে এই পদ্ধতিগুলির মধ্যে কোনটি মানসম্পন্ন যাতে আমার ওয়েবসার্ভিস ব্যবহার করা লোকেরা একই নামের জন্য একাধিক পরামিতি কীভাবে পাস করতে পারে তা জানতে পারে।

সুতরাং, কেউ আমাকে কোনও বিকল্প রেফারেন্স উত্সে নির্দেশ করতে পারে কোন বিকল্পটি সঠিক তা নিশ্চিত করার জন্য?

উত্তর:


165

আসলে, কোন সংজ্ঞায়িত মান নেই। তথ্যটি সমর্থন করতে, ক্যারি স্ট্রিং অধ্যায়টিতে উইকিপিডিয়াটি দেখুন । নিম্নলিখিত মন্তব্য আছে:

যদিও এখানে কোনও নির্দিষ্ট মান নেই, বেশিরভাগ ওয়েব ফ্রেমওয়ার্ক একাধিক মানকে একটি ক্ষেত্রের সাথে যুক্ত করতে দেয়। [3] [4]

তদ্ব্যতীত, আপনি যখন বিভাগ 3.4 বিভাগে আরএফসি 3986 দেখুন , একাধিক মান সহ পরামিতিগুলির জন্য কোনও সংজ্ঞা নেই।

সর্বাধিক অ্যাপ্লিকেশন প্রথম অপশনটি আপনাকে দেখানো হয়েছে ব্যবহার করুন: http://server/action?id=a&id=b। তথ্যটি সমর্থন করার জন্য, এই স্ট্যাকওভারফ্লো লিঙ্কটি এবং এএসপি.এনইটি অ্যাপ্লিকেশন সম্পর্কিত এই এমএসডিএন লিঙ্কটি একবার দেখুন , যা একাধিক মান সহ পরামিতিগুলির জন্য একই মান ব্যবহার করে।

তবে, যেহেতু আপনি এপিআইগুলি বিকাশ করছেন, তাই আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার পক্ষে সবচেয়ে সহজ কী, কারণ এপিআই'র ফোনকারীকে কোয়েরি স্ট্রিং তৈরি করতে খুব বেশি সমস্যা হবে না।


বিপরীতে কোনও তথ্যের অনুপস্থিতিতে, আমি অনুমান করি আপনি ঠিক বলেছেন - আরএফসি 3986 যদি কোনও মান নির্দিষ্ট না করে তবে একটি নেই। ধন্যবাদ এডুয়ার্ডো
স্ট্রাইপ্যাডেজার

19
id=a&id=bবুলিয়ান এবং, এবং id=a,bবুলিয়ান ওআর হিসাবে ব্যবহার করার পরামর্শ দেয় ।
অ্যালেক্স স্ক্রাইপন্যিক

17
এফডব্লিউআইডাব্লু পিএইচপি আরোগুলি পড়ার মতো সমর্থন করে না ?id=5&id=3। পিএইচপি এখানে আইডির জন্য কেবল একটি মানতে পড়তে পারে। যদি আমি সঠিকভাবে মনে রাখি তবে পিএইচপি-র সাথে কাজ করার জন্য এটি দেখতে এই জাতীয় দেখতে হবে:?id[]=5&id[]=3
আপনি কীভাবে চেষ্টা করেছেন

3
+1 এর জন্যsince you are developing the APIs, I suggest you to do what is the easiest for you, since the caller of the API will not have much trouble creating the query string.
আমর

2
id=a,bঅনুমান করে যে কোমা ,একটি বৈধ ডিলিমিটার। তবে আপনার প্যারামিটার মানগুলিতে একটি থাকতে পারে ,। তারপরে ক্লায়েন্টটির ,ক্যোয়ারী প্যারামিটার মানগুলিতে পালাতে হবে । তবে আপনি সিদ্ধান্ত নিতে পারেন ;আরও ভাল। এর অর্থ ক্লায়েন্ট এবং সার্ভারের আপনার এপিআই-এর জন্য সরকারী ডিলিমিটারটি ভাগ করা উচিত। id=a&id=bএটি url দীর্ঘায়িত করার পরেও এই সমস্যাটি নেই
রোনান কুইলভেরি

5

আমি ব্রাউজারগুলি ডিফল্টরূপে ফর্মগুলি কীভাবে পরিচালনা করে তা দেখার পরামর্শ দেব। উদাহরণস্বরূপ ফর্ম উপাদানটি <select multiple>এবং এটি কীভাবে ডাব্লু 3 স্কুলগুলিতে এই উদাহরণ থেকে একাধিক মান পরিচালনা করে তা একবার দেখুন।

<form action="/action_page.php">
<select name="cars" multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<input type="submit">
</form>

পিএইচপি ব্যবহারের জন্য:

<select name="cars[]" multiple>

উপর থেকে w3schools.com এ সরাসরি উদাহরণ

উপরে থেকে যদি আপনি "সাব, ওপেল" ক্লিক করেন এবং জমা দিন ক্লিক করেন তবে এটি গাড়ি = সাব ও কার = অপেলের ফলাফল উত্পন্ন করবে । তারপরে ব্যাক-এন্ড সার্ভারের উপর নির্ভর করে প্যারামিটার গাড়িগুলি এমন অ্যারে হিসাবে দেখা উচিত যা আপনি আরও প্রক্রিয়া করতে পারেন।

আশা করি এটি যে কেউ এই সমস্যাটি পরিচালনা করার জন্য আরও 'স্ট্যান্ডার্ড' উপায় অনুসন্ধান করতে সহায়তা করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.