Cách lấy giá trị đã chọn và văn bản thả xuống trong php?

Hướng dẫn này sẽ chỉ cho bạn cách thêm hộp chọn và hộp đa lựa chọn vào một biểu mẫu, cách truy xuất dữ liệu đầu vào từ chúng, cách xác thực dữ liệu và cách thực hiện các hành động khác nhau tùy thuộc vào đầu vào

Chọn hộp

Hãy xem xét một đầu vào mới. hộp “chọn”, còn được gọi là hộp “thả xuống” hoặc “kéo xuống”. Một hộp chọn chứa một hoặc nhiều “tùy chọn”. Mỗi tùy chọn có một “giá trị”, giống như các đầu vào khác và cũng là một chuỗi văn bản giữa các thẻ tùy chọn. Điều này có nghĩa là khi người dùng chọn “Male”, giá trị “formGender” khi PHP truy cập sẽ là “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>

Giá trị đã chọn từ đầu vào này có thể được đọc với mảng $_POST tiêu chuẩn giống như đầu vào văn bản và được xác thực để đảm bảo người dùng đã chọn Nam hoặc Nữ


<?php

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

  // - - - snip - - - 
}

?>

Luôn luôn là một ý tưởng hay khi có tùy chọn “trống” làm tùy chọn đầu tiên trong hộp chọn của bạn. Nó buộc người dùng phải lựa chọn có ý thức từ hộp và tránh tình huống người dùng có thể bỏ qua hộp mà không có ý định. Tất nhiên, điều này yêu cầu xác nhận


<?php

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

?>

( Để biết tập lệnh xác thực biểu mẫu chung, dễ sử dụng, hãy xem Tập lệnh xác thực biểu mẫu PHP )

đa lựa chọn

Giả sử bạn muốn hiển thị hộp chọn cho phép người dùng chọn nhiều tùy chọn

Đây là cách tạo một đầu vào như vậy trong 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>

Vui lòng lưu ý sự tương đồng với nhóm hộp kiểm. Trước tiên, hãy đặt multiple=“multiple” làm thuộc tính của hộp chọn. Thứ hai, đặt [ ] ở cuối tên. Cuối cùng, chúng tôi không thực sự cần một tùy chọn "trống" trong hộp chọn này, bởi vì chúng tôi có thể chỉ cần kiểm tra để đảm bảo rằng người dùng đã chọn thứ gì đó hay không. Để chọn nhiều giá trị, hãy sử dụng các nút shift hoặc ctrl khi nhấp vào

Mã PHP để xử lý trường này rất giống với mã hộp kiểm. $_POST['formCountries'] trả về một mảng các giá trị đã chọn


<?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>");
  }
}

?>

Như trước đây, hãy sử dụng “isset” để đảm bảo rằng một số giá trị đã được chọn

Sử dụng công tắc

Bây giờ, hãy thay đổi hộp chọn nhiều lần thành hộp chọn đơn tiêu chuẩn. Bây giờ chúng tôi muốn thực hiện các hành động khác nhau dựa trên lựa chọn của người dùng. Bạn có thể viết một loạt các câu lệnh "nếu", nhưng điều đó có thể trở nên lộn xộn. Hãy xem xét hai cách. các lệnh động và câu lệnh 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();
  }
}
?>

Hai cách tiếp cận này có ưu và nhược điểm của chúng. Phương thức chuyển đổi về cơ bản là một phương pháp ngắn gọn để viết một loạt các câu lệnh "nếu". Mỗi trường hợp khớp với biến được chuyển qua công tắc và thực hiện tất cả các hành động sau trường hợp đó cho đến khi có câu lệnh ngắt. Trong trường hợp này, mỗi trường hợp đang chuyển hướng đến trang tương ứng đến quốc gia đã chọn. Nếu không tìm thấy quốc gia đã chọn trong một trong các trường hợp, thì trường hợp “mặc định” được giả định và “Lỗi. " được hiển thị

Phương pháp thứ hai chỉ là chuyển giá trị đã chọn cho chức năng tiêu đề để chuyển hướng đến đúng trang

Phương pháp đầu tiên yêu cầu viết nhiều mã hơn, nhưng an toàn hơn vì nó đảm bảo biểu mẫu chỉ chuyển hướng đến 6 trường hợp được lập trình sẵn, nếu không sẽ hiển thị thông báo lỗi và kết thúc thực hiện

Phương pháp thứ hai ngắn gọn hơn nhiều, nhưng kém an toàn hơn vì người dùng ác ý có thể sử dụng biểu mẫu và gửi bất kỳ giá trị nào anh ta muốn. Nếu sử dụng phương pháp 2, bạn nên xác thực quốc gia đã chọn trước để đảm bảo rằng quốc gia đó sẽ không dẫn đến chuyển hướng đến một trang độc hại

Làm cách nào để lấy giá trị tùy chọn đã chọn của danh sách thả xuống trong php?

Để lấy giá trị đã chọn của phần tử sử dụng biến siêu toàn cục $_POST nếu phương thức biểu mẫu là POST và $_GET nếu phương thức biểu mẫu là GET . Alternatively, you can use the filter_input() function to sanitize the selected value.

Làm cách nào tôi có thể tìm nạp dữ liệu Sau khi chọn từ danh sách thả xuống?

Không có bất kỳ hộp văn bản nào trong mã của bạn. .
Bạn có kiến ​​thức về jquery và ajax?.
bạn có thể sử dụng onchange của jquery để kiểm tra xem khi nào bạn chọn bất kỳ giá trị nào, nó sẽ kích hoạt phương thức onchange và sau đó thông qua Ajax, bạn có thể điền các giá trị vào vùng văn bản của mình

Làm cách nào để nhận giá trị thả xuống đã chọn trong php mà không cần gửi?

php $selected_option=$_POST['option_value']; //Làm những gì bạn cần với giá trị này, sau đó lặp lại những gì bạn muốn được trả lại. echo "bạn đã chọn tùy chọn với giá trị=$selected_option";

Cách đọc giá trị tùy chọn chọn trong php?

Viết Chương trình về cách lấy giá trị tùy chọn đã chọn trong PHP. .
<. Loại tài liệu html>
<đầu>
Ví dụ thả xuống chọn PHP
thùng đựng hàng {