Bagaimana saya bisa mengambil data setelah memilih dari daftar dropdown di php?

Tutorial ini akan menunjukkan cara menambahkan kotak pilih dan kotak multi-pilihan ke formulir, cara mengambil data input darinya, cara memvalidasi data, dan cara mengambil tindakan yang berbeda tergantung pada input

Pilih kotak

Mari kita lihat input baru. kotak "pilih", juga dikenal sebagai kotak "drop-down" atau "pull-down". Kotak pilih berisi satu atau lebih "opsi". Setiap opsi memiliki "nilai", seperti input lainnya, dan juga string teks di antara tag opsi. Ini berarti ketika pengguna memilih "Male", nilai "formGender" saat diakses oleh PHP akan menjadi "M"


<p>
What is your Gender?
<select name="formGender">
  <option value="">Select...</option>
  <option value="M">Male</option>
  <option value="F">Female</option>
</select>
</p>

Nilai yang dipilih dari input ini dapat dibaca dengan array $_POST standar seperti input teks dan divalidasi untuk memastikan pengguna memilih Pria atau Wanita


<?php

if(isset($_POST['formSubmit']) )
{
  $varMovie = $_POST['formMovie'];
  $varName = $_POST['formName'];
  $varGender = $_POST['formGender'];
  $errorMessage = "";

  // - - - snip - - - 
}

?>
_

Itu selalu merupakan ide bagus untuk memiliki opsi "kosong" sebagai opsi pertama di kotak pilihan Anda. Ini memaksa pengguna untuk membuat pilihan sadar dari kotak dan menghindari situasi di mana pengguna mungkin melewati kotak tanpa sengaja. Tentu saja, ini membutuhkan validasi


<?php

if(!isset($_POST['formGender'])) 
{
  $errorMessage .= "<li>You forgot to select your Gender!</li>";
}

?>

(Untuk skrip validasi formulir yang umum dan mudah digunakan, lihat Skrip Validasi Formulir PHP )

Multi-pilih

Misalkan Anda ingin menyajikan kotak pilihan yang memungkinkan pengguna memilih beberapa opsi

Berikut ini cara membuat input seperti itu dalam HTML


<label for='formCountries[]'>Select the countries that you have visited:</label><br>
<select multiple="multiple" name="formCountries[]">
    <option value="US">United States</option>
    <option value="UK">United Kingdom</option>
    <option value="France">France</option>
    <option value="Mexico">Mexico</option>
    <option value="Russia">Russia</option>
    <option value="Japan">Japan</option>
</select>

Harap perhatikan kemiripannya dengan grup kotak centang. Pertama, tetapkan multiple=“multiple” sebagai properti kotak pilih. Kedua, letakkan [ ] di akhir nama. Akhirnya, kami tidak benar-benar membutuhkan opsi "kosong" di kotak pilih ini, karena kami cukup memeriksa untuk memastikan pengguna memilih sesuatu atau tidak. Untuk memilih beberapa nilai, gunakan tombol shift atau ctrl saat mengklik

Kode PHP untuk memproses bidang ini sangat mirip dengan kode kotak centang. $_POST['formCountries'] mengembalikan array dari nilai yang dipilih


<?php

if(isset($_POST['formSubmit'])) 
{
  $aCountries = $_POST['formCountries'];
  
  if(!isset($aCountries)) 
  {
    echo("<p>You didn't select any countries!</p>\n");
  } 
  else 
  {
    $nCountries = count($aCountries);
    
    echo("<p>You selected $nCountries countries: ");
    for($i=0; $i < $nCountries; $i++)
    {
      echo($aCountries[$i] . " ");
    }
    echo("</p>");
  }
}

?>
_

Seperti sebelumnya, gunakan "isset" untuk memastikan beberapa nilai dipilih

Menggunakan sakelar

Sekarang, mari ubah kotak multi-pilih kembali ke kotak pilihan tunggal standar. Kami sekarang ingin melakukan tindakan berbeda berdasarkan pilihan apa yang dibuat pengguna. Anda bisa menulis banyak pernyataan "jika", tapi itu bisa jadi berantakan. Mari kita lihat dua cara. perintah dinamis dan pernyataan switch


<?php

if(isset($_POST['formSubmit'])) 
{
  $varCountry = $_POST['formCountry'];
  $errorMessage = "";
  
  if(empty($varCountry)) 
  {
    $errorMessage = "<li>You forgot to select a country!</li>";
  }
  
  if($errorMessage != "") 
  {
    echo("<p>There was an error with your form:</p>\n");
    echo("<ul>" . $errorMessage . "</ul>\n");
  } 
  else 
  {
    // note that both methods can't be demonstrated at the same time
    // comment out the method you don't want to demonstrate

    // method 1: switch
    $redir = "US.html";
    switch($varCountry)
    {
      case "US": $redir = "US.html"; break;
      case "UK": $redir = "UK.html"; break;
      case "France": $redir = "France.html"; break;
      case "Mexico": $redir = "Mexico.html"; break;
      case "Russia": $redir = "Russia.html"; break;
      case "Japan": $redir = "Japan.html"; break;
      default: echo("Error!"); exit(); break;
    }
    echo " redirecting to: $redir ";
    
    // header("Location: $redir");
    // end method 1
    
    // method 2: dynamic redirect
    //header("Location: " . $varCountry . ".html");
    // end method 2

    exit();
  }
}
?>

Kedua pendekatan ini memiliki pro dan kontra. Metode switch pada dasarnya adalah metode singkat untuk menulis banyak pernyataan "jika". Setiap case cocok dengan variabel yang melewati switch dan melakukan semua tindakan setelah case tersebut hingga pernyataan break. Dalam hal ini, setiap kasus dialihkan ke halaman yang sesuai ke negara yang dipilih. Jika negara yang dipilih tidak ditemukan di salah satu kasus, kasus "default" diasumsikan, dan "Error. ” ditampilkan

Metode kedua hanya meneruskan nilai yang dipilih ke fungsi header untuk mengarahkan ulang ke halaman yang benar

Metode pertama memerlukan penulisan lebih banyak kode, tetapi lebih aman karena memastikan formulir hanya dialihkan ke 6 kasus yang telah diprogram sebelumnya, atau menampilkan pesan kesalahan dan mengakhiri eksekusi

Metode kedua jauh lebih ringkas, tetapi kurang aman karena pengguna jahat dapat mengutak-atik formulir dan mengirimkan nilai apa pun yang dia inginkan. Jika menggunakan metode 2, ada baiknya memvalidasi negara yang dipilih terlebih dahulu, untuk memastikan tidak akan mengakibatkan pengalihan ke halaman berbahaya

Bagaimana cara mendapatkan nilai dari daftar dropdown di php?

Dapatkan Beberapa Nilai Terpilih dari Dropdown Pilih di PHP . Pastikan array Fruits tidak kosong, jalankan foreach loop untuk mengulangi setiap nilai dropdown pilih. Tampilkan nilai yang dipilih jika tidak tampilkan pesan kesalahan kepada pengguna. Add the multiple tag with select tag also define array with name property. Make sure the Fruits array is not empty, run a foreach loop to iterate over every value of the select dropdown. Display the selected values else show the error message to the user.

Bagaimana cara mendapatkan nilai dropdown yang dipilih?

Nilai elemen terpilih dapat ditemukan dengan menggunakan properti value pada elemen terpilih yang menentukan daftar . Properti ini mengembalikan string yang mewakili atribut nilai dari elemen

Bagaimana cara mendapatkan nilai opsi pilih di php?

Untuk mendapatkan nilai terpilih dari elemen menggunakan variabel superglobal $_POST jika metode form adalah POST dan $_GET jika metode form adalah GET . Alternatively, you can use the filter_input() function to sanitize the selected value.

Bagaimana Anda mendapatkan nilai dropdown yang dipilih di php tanpa mengirimkan?

Anda tidak bisa mendapatkan nilai opsi dalam variabel php, tanpa membuat permintaan http , karena nilai yang dipilih terletak pada klien, dan php - di server.