পিএইচপি তে নির্বাচিত বাক্সের একাধিক নির্বাচিত মানগুলি কীভাবে পাবেন?


240

আমার একটি এইচটিএমএল ফর্ম রয়েছে যার একটি নির্বাচনী তালিকা বাক্স রয়েছে যা থেকে আপনি একাধিক মান নির্বাচন করতে পারবেন কারণ এর একাধিক সম্পত্তি একাধিকতে সেট করা আছে। ফর্ম পদ্ধতিটি 'জিইটি' বিবেচনা করুন। ফর্মের জন্য এইচটিএমএল কোডটি নিম্নরূপ:

<html>
    <head>
    <title>Untitled Document</title>
    </head>
    <body>
    <form id="form1" name="form1" method="get" action="display.php">
      <table width="300" border="1">
        <tr>
          <td><label>Multiple Selection </label>&nbsp;</td>
          <td><select name="select2" size="3" multiple="multiple" tabindex="1">
            <option value="11">eleven</option>
            <option value="12">twelve</option>
            <option value="13">thirette</option>
            <option value="14">fourteen</option>
            <option value="15">fifteen</option>
            <option value="16">sixteen</option>
            <option value="17">seventeen</option>
            <option value="18">eighteen</option>
            <option value="19">nineteen</option>
            <option value="20">twenty</option>
          </select>
          </td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td>
        </tr>
      </table>
    </form>
    </body>
    </html>

আমি ডিসপ্লে.এফপি পৃষ্ঠায় নির্বাচিত তালিকা বাক্সে নির্বাচিত মানগুলি প্রদর্শন করতে চাই। সুতরাং নির্বাচিত মানগুলি কীভাবে $_GET[]অ্যারে ব্যবহার করে প্রদর্শন.পিএফপি পৃষ্ঠায় অ্যাক্সেস করতে পারে ।


আপনি কি নাম পরিবর্তন করতে পারবেন select2? বা অন্য কেউ ফর্ম নিয়ন্ত্রণ করে?
দামিয়ান ইয়ারিক

উত্তর:


393

আপনি যদি পিএইচপি চাইলে $_GET['select2']বিকল্পগুলির অ্যারে হিসাবে বিবেচনা করুন তবে কেবলমাত্র এই জাতীয় নির্বাচনের উপাদানটির নামে বর্গাকার বন্ধনী যুক্ত করুন :<select name="select2[]" multiple …

তারপরে আপনি আপনার পিএইচপি স্ক্রিপ্টে অ্যারেটি অ্যাক্সেস করতে পারেন

<?php
header("Content-Type: text/plain");

foreach ($_GET['select2'] as $selectedOption)
    echo $selectedOption."\n";

$_GETমানের $_POSTউপর নির্ভর করে প্রতিস্থাপিত হতে পারে <form method="…"


1
আমার জন্য মনে হয়, ব্রাউজারটি যদি মাল্টিপল-সিলেক্টে কিছু না নির্বাচিত হয় তবে পোস্ট / গেট-প্যারামিটার প্রেরণ করে না। পরিবর্তে কীভাবে আপনি খালি অ্যারে রাখতে বাধ্য করতে পারেন?
emfi

আমাকে $ _GET ['সিলেক্ট 2'] এর পরিবর্তে $ _POST ['select2'] ব্যবহার করতে হয়েছিল
কাইল

2
এটি পুরানো উত্তর, তবে এটি একটি বিভ্রান্তিমূলক উত্তর! (নাম = "সিলেক্ট 2 []") @ কাউফুর উত্তর হিসাবে সঠিক!
আমাকে

@emfi আপনি যদি প্যারামিটারটি প্রেরণ করতে চান তবে অবশ্যই একটি মান থাকতে হবে; আপনি তালিকায় "নির্বাচিত" যুক্ত করতে পারেন (অর্থাত্ <option value="" selected></option>) যদি আপনি তালিকায় একটি ডিফল্ট বিকল্প থাকা সহ্য করতে পারেন। আপনি ডিফল্ট বিকল্পটি অদৃশ্য করতে সিএসএস ব্যবহার করতে পারেন; তবে কেউ যদি অন্য কোনও বিকল্প নির্বাচন করে, তবে সমস্ত কিছু অনির্বাচিত করে .. আপনি কোনও মূল্য ফিরে না পেয়ে বাছাই করতে পারেন। সুতরাং .. GET ব্যবহার করে কোন পরিষ্কার সমাধান নেই।
এপ্রিয়েটার

1
যোগ করা [] পোষ্ট এবং জিইটি উভয় ক্ষেত্রেই আমার পক্ষে কাজ করে তবে ফলাফলযুক্ত ইউআরআই (জিইটি সহ) কেবলমাত্র ভয়াবহ (..multiselect.php? এমএস% 5 বি% 5 ডি = 1 এবং এমএস% 5 বি% 5 ডি = 2)
টেসন

182

পরিবর্তন:

<select name="select2" ...

প্রতি:

<select name="select2[]" ...

কিছু ক্ষেত্রে, কেন এটি এখনও কাজ করে না? এটি দিয়ে আমি সাফল্য পাচ্ছি না।
মাইক Kormendy

35

নির্বাচন বাক্স থেকে একাধিক মান নির্বাচন করার জন্য নিম্নলিখিত প্রোগ্রামটি ব্যবহার করুন।

multi.php

<?php
print <<<_HTML_
<html>
        <body>
                <form method="post" action="value.php">
                        <select name="flower[ ]" multiple>
                                <option value="flower">FLOWER</option>
                                <option value="rose">ROSE</option>
                                <option value="lilly">LILLY</option>
                                <option value="jasmine">JASMINE</option>
                                <option value="lotus">LOTUS</option>
                                <option value="tulips">TULIPS</option>
                        </select>
                        <input type="submit" name="submit" value=Submit>
                </form>
        </body>
</html>
_HTML_

?>

value.php

<?php
foreach ($_POST['flower'] as $names)
{
        print "You are selected $names<br/>";
}

?>

35

আপনি একাধিক নির্বাচন কম্বো বাক্স থেকে মানগুলি পুনরুদ্ধার করতে এই কোডটি ব্যবহার করতে পারেন

এইচটিএমএল:

<form action="c3.php" method="post">
  <select name="ary[]" multiple="multiple">
    <option value="Option 1" >Option 1</option>
    <option value="Option 2">Option 2</option>
    <option value="Option 3">Option 3</option>
    <option value="Option 4">Option 4</option>
    <option value="Option 5">Option 5</option>
  </select>
  <input type="submit">
</form>

পিএইচপি:

<?php
$values = $_POST['ary'];

foreach ($values as $a){
    echo $a;
}
?>

7
    <html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="get" action="display.php">
  <table width="300" border="1">
    <tr>
      <td><label>Multiple Selection </label>&nbsp;</td>
      <td><select name="select2[]" size="3" multiple="multiple" tabindex="1">
        <option value="11">eleven</option>
        <option value="12">twelve</option>
        <option value="13">thirette</option>
        <option value="14">fourteen</option>
        <option value="15">fifteen</option>
        <option value="16">sixteen</option>
        <option value="17">seventeen</option>
        <option value="18">eighteen</option>
        <option value="19">nineteen</option>
        <option value="20">twenty</option>
      </select>
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit" tabindex="2" /></td>
    </tr>
  </table>
</form>
</body>
</html>

আপনি এটি সরাসরি এটি পুনরাবৃত্তি করতে পারেন

foreach ($_GET['select2'] as $value)
    echo $value."\n";

অথবা আপনি এটি এটি করতে পারেন

$selectvalue=$_GET['select2'];
foreach ($selectvalue as $value)
    echo $value."\n"; 

5

এটি নির্বাচিত মানগুলি প্রদর্শন করবে:

<?php

    if ($_POST) { 
        foreach($_POST['select2'] as $selected) {
            echo $selected."<br>";
        }
    }

?>

3
এর একাধিক ত্রুটি রয়েছে: 1) ওপি জিইটি পদ্ধতি ব্যবহার করছিল; 2) এটির মতো ফর্ম উপাদানটির নামের মতো বর্গাকার বন্ধনী যুক্ত করার সবচেয়ে গুরুত্বপূর্ণ পদক্ষেপের অভাব রয়েছে name="select2[]"
চার্লি

5
// CHANGE name="select2" TO name="select2[]" THEN
<?php
  $mySelection = $_GET['select2'];

  $nSelection = count($MySelection);

  for($i=0; $i < $nSelection; $i++)
   {
      $numberVal = $MySelection[$i];

        if ($numberVal == "11"){
         echo("Eleven"); 
         }
        else if ($numberVal == "12"){
         echo("Twelve"); 
         } 
         ...

         ...
    }
?>

2

আপনি এই মত করতে পারে। এটা আমার জন্য কাজ করে।

<form action="ResultsDulith.php" id="intermediate" name="inputMachine[]" multiple="multiple" method="post">
    <select id="selectDuration" name="selectDuration[]" multiple="multiple"> 
        <option value="1 WEEK" >Last 1 Week</option>
        <option value="2 WEEK" >Last 2 Week </option>
        <option value="3 WEEK" >Last 3 Week</option>
         <option value="4 WEEK" >Last 4 Week</option>
          <option value="5 WEEK" >Last 5 Week</option>
           <option value="6 WEEK" >Last 6 Week</option>
    </select>
     <input type="submit"/> 
</form>

তারপরে নীচের পিএইচপি কোডটি অনুসরণ করে একাধিক নির্বাচন করুন । এটি সেই অনুযায়ী নির্বাচিত একাধিক মান মুদ্রণ করে।

$shift=$_POST['selectDuration'];

print_r($shift);

0

আমি জাভাস্ক্রিপ্ট + এইচটিএমএল দিয়ে আমার সমস্যাটি ঠিক করেছি। প্রথমে আমি নির্বাচিত বিকল্পগুলি যাচাই করি এবং এটি আমার ফর্মের একটি লুকানো ক্ষেত্রে সংরক্ষণ করি:

for(i=0; i < form.select.options.length; i++)
   if (form.select.options[i].selected)
    form.hidden.value += form.select.options[i].value;

এরপরে, আমি সেই ক্ষেত্রটি পোস্টে পেয়েছি এবং সমস্ত স্ট্রিং পেয়েছি ;-) আমি আশা করি এটি আরও কারও জন্য কাজ হবে। সবাইকে ধন্যবাদ.


1
এর একাধিক ত্রুটি রয়েছে: 1) জাভাস্ক্রিপ্ট উপলব্ধ হওয়ার উপর নির্ভর করে; 2) মানগুলিকে একক স্ট্রিংয়ে যুক্ত করার পরে পৃথক করে না, ফলে স্ট্রিংটিকে পরে মানগুলিতে ভাগ করে নেওয়া অসম্ভব হয়ে পড়ে।
চার্লি

এই উত্তরটি আমাকে প্রয়োজনীয় দিকনির্দেশনা দেয়। ধন্যবাদ.
ওলেগ পপভ

0
foreach ($_POST["select2"] as $selectedOption)
{    
    echo $selectedOption."\n";  
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.