Cách chuyển tham số truy vấn trong url trong php?

Đã đến lúc cung cấp cho mỗi thú cưng trang riêng của chúng. Ở giai đoạn này, một trang mới có nghĩa là một tệp mới - vì vậy hãy tạo một chương trình. php và sao chép trong các câu lệnh yêu cầu cho các chức năng. php, đầu trang và chân trang




Display 1 pet


Mẹo

Cuối cùng, chúng ta sẽ tìm hiểu một chiến lược gọi là "định tuyến" giúp tạo các trang mới dễ dàng hơn và cung cấp cho bạn rất nhiều quyền kiểm soát đối với giao diện URL của bạn

Mỗi trang theo một khuôn mẫu quen thuộc. chúng tôi thực hiện một số công việc ở trên cùng - như truy vấn cơ sở dữ liệu - và sau đó chúng tôi sử dụng các biến mà chúng tôi đã tạo trong phần còn lại của HTML để in mọi thứ. Ở đây, “công việc” của chúng ta sẽ là truy vấn duy nhất một thú cưng trong cơ sở dữ liệu

Nhưng trước tiên, hãy tạo một liên kết từ mỗi thú cưng trên trang chủ đến tệp này. Để cho trang biết chúng ta muốn hiển thị thú cưng nào, hãy thêm ?id= vào cuối URL và in ra id của thú cưng này



Làm mới và nhấp vào liên kết. Chúng tôi được đưa đến trang mới với một phần ?id= nhỏ trên URL. Đó được gọi là tham số truy vấn và đó là cách dễ nhất để chuyển một số dữ liệu bổ sung vào một trang

Sử dụng tham số truy vấn

Yêu cầu HTTP đến máy chủ hiện chứa một ít thông tin bổ sung thông qua tham số truy vấn này. Vậy làm thế nào chúng ta có thể đọc điều này trong PHP? . Chúng tôi đã sử dụng $_POST để nhận dữ liệu được gửi trong biểu mẫu và $_SERVER để tìm hiểu xem đây là yêu cầu GET hay POST

Các tham số truy vấn được truy cập thông qua $_GET superglobal. Hãy kết xuất toàn bộ biến này

Cũng giống như các siêu toàn cầu khác, đây là một mảng kết hợp. Chúng tôi có thể thêm nhiều giá trị hơn trong URL bằng cách thêm dấu & giữa mỗi

Bây giờ $_GET có 3 mục trong đó

Mẹo

Tham số truy vấn luôn bắt đầu bằng dấu ?

Vì vậy, hãy lấy khóa id từ $_GET

Bạn biết khoan từ đây. Chúng tôi sẽ truy vấn cơ sở dữ liệu cho một con vật cưng này và sử dụng thông tin đó để xây dựng trang. Nhưng đợi đã. Chúng ta nên xây dựng truy vấn ngay tại đây hay đặt nó trong một hàm? . một chức năng sẽ giúp giữ mọi thứ ngăn nắp. Gọi một hàm get_pet() tưởng tượng và chuyển cho nó $id

Và trước khi chúng ta nghĩ đến việc tạo hàm đó, chúng ta đã biết nó sẽ trả về cái gì. một mảng kết hợp với các chi tiết cho chỉ một con vật cưng. Hãy xây dựng trang này với suy nghĩ đó. Để tiết kiệm một số thao tác gõ, tôi đã bắt đầu tệp này trong phần tải xuống mã tại resource/episode3/show. php. Tôi sẽ sao chép nội dung của nó vào giữa trang này và điền vào một số phần còn thiếu

PHP bao gồm phương thức http_build_query() để tạo chuỗi truy vấn được mã hóa URL. Phương pháp này chỉ khả dụng trên các phiên bản PHP 5 trở lên. Trong đoạn mã này, bạn sẽ tìm hiểu cách chuyển một mảng trong chuỗi truy vấn URL bằng PHP

Cú pháp của http_build_query() sẽ như sau

http_build_query($query, $numeric_prefix, $separator, $encoded_type)

Trong phần này, chúng ta sẽ sử dụng mảng $vars để tạo chuỗi truy vấn URL. Mảng $vars bao gồm dữ liệu của từ khóa tìm kiếm, cũng như số trang

Hãy xem một ví dụ trong đó mảng này được chuyển đến phương thức http_build_query() để tạo chuỗi truy vấn

 26, 'search' => 'w3docs'];
$qs = http_build_query($vars);
$url = 'http://www.example.com/search.php?' . $qs;
echo $url;

?>

Mã được trình bày ở trên sẽ trả về chuỗi truy vấn url sau

Bây giờ, hãy xem một ví dụ trong đó $vars là một mảng được lập chỉ mục bao gồm dữ liệu nhân viên

 '332'];
$qs = http_build_query($vars);
$url = 'http://www.example.com/search.php?' . $qs;
echo $url;

?>

Đoạn mã trên sẽ trả về chuỗi truy vấn url sau

Trong phần này, chúng ta sẽ coi $vars là một mảng đa chiều với dữ liệu nhân viên. Khi đi qua phương thức http_build_query(), nó sẽ trả về một chuỗi truy vấn url phức tạp

Đây là một ví dụ

 ['name' => 'Brown', 'age' => 41, 'dept' => 'IT', 'dob' => '9/22/1980'], 'role' => ['engineer', 'developer']];
$qs = http_build_query($vars);
$url = 'http://www.example.com/search.php?' . $qs;
echo $url;

?>

Mã này sẽ trả về chuỗi truy vấn url sau

Thuật ngữ chuỗi truy vấn được coi là một phần của Bộ định vị tài nguyên thống nhất (URL). Nó ở dạng một loạt các cặp khóa-giá trị. Nói chung, nó được sử dụng để tạo một url điển hình hoặc lấy dữ liệu từ URL

Vì vậy, bạn có thể sử dụng chuỗi truy vấn cho các mục đích khác nhau, chẳng hạn như từ khóa tìm kiếm, xây dựng url, theo dõi trang web cụ thể, v.v.

Một mảng kết hợp gồm các biến được chuyển đến tập lệnh hiện tại thông qua các tham số URL (còn gọi là. chuỗi truy vấn). Lưu ý rằng mảng không chỉ được điền cho các yêu cầu GET mà còn cho tất cả các yêu cầu có chuỗi truy vấn

ví dụ

Ví dụ #1 $_GET ví dụ

echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>

Giả sử người dùng đã nhập http. //ví dụ. com/?name=Hannes

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như

ghi chú

Ghi chú

Đây là biến 'siêu toàn cầu' hoặc toàn cầu tự động. Điều này đơn giản có nghĩa là nó có sẵn trong tất cả các phạm vi trong toàn bộ tập lệnh. Không cần phải làm $variable toàn cầu;

Làm cách nào để thêm tham số truy vấn vào URL trong PHP?

Cách đáng tin cậy để thêm một tham số GET cụ thể là gì? . echo http_build_url($url, array("query" => "the=query&parts=here"), HTTP_URL_JOIN_QUERY);. .
cũng đừng quên nối thêm giá trị của danh mục. .
@DougT. .
Cách tiếp cận này tốt khi bạn biết rằng tham số 'danh mục' chưa có trong URL

Làm cách nào để tạo URL chuỗi truy vấn trong PHP?

Hàm http_build_query() là một hàm sẵn có trong PHP được sử dụng để tạo chuỗi truy vấn được mã hóa URL từ liên kết (hoặc được lập chỉ mục .

URL bài đăng có thể có tham số truy vấn không?

Nếu bạn biết các tham số URL cho bài đăng biểu mẫu của mình khi trang HTML được gửi tới ứng dụng khách, bạn có thể gắn các tham số URL đó vào thuộc tính hành động của biểu mẫu, nếu không thì JavaScript có thể đặt tham số URL khi biểu mẫu được gửi

Làm cách nào để chuyển giá trị mảng trong URL bằng PHP?

Để truyền một mảng dưới dạng tham số URL, bạn có thể sử dụng hàm có sẵn của php http_build_query() . http_build_query() trả về cho bạn chuỗi truy vấn được mã hóa URL.