Tôi đã gặp phải vấn đề này khi thực hiện các biểu mẫu ajax trong đó tôi bao gồm nhiều tập trường. Lấy ví dụ một đơn xin việc. Tôi bắt đầu với một bộ tham chiếu chuyên nghiệp và tôi có một nút cho biết "Thêm nhiều hơn". Điều này thực hiện một cuộc gọi ajax với tham số $ count để bao gồm lại đầu vào được đặt (tên, liên hệ, điện thoại, v.v.) Điều này hoạt động tốt trên lệnh gọi trang đầu tiên khi tôi làm điều gì đó như:
<?php
include('references.php');`
?>
Người dùng nhấn một nút thực hiện cuộc gọi ajax ajax('references.php?count=1');
Sau đó, bên trong tệp reference.php, tôi có một cái gì đó như:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
Tôi cũng có các bao gồm động khác như thế này trên khắp trang web truyền các tham số. Sự cố xảy ra khi người dùng nhấn gửi và có lỗi biểu mẫu. Vì vậy, bây giờ để không trùng lặp mã để bao gồm những bộ trường bổ sung mà ở đó được bao gồm động, tôi đã tạo một hàm sẽ thiết lập bao gồm với các tham số GET thích hợp.
<?php
function include_get_params($file) {
$parts = explode('?', $file);
if (isset($parts[1])) {
parse_str($parts[1], $output);
foreach ($output as $key => $value) {
$_GET[$key] = $value;
}
}
include($parts[0]);
}
?>
Hàm kiểm tra các tham số truy vấn và tự động thêm chúng vào biến $ _GET. Điều này đã hoạt động khá tốt cho các trường hợp sử dụng của tôi.
Đây là một ví dụ trên trang biểu mẫu khi được gọi:
<?php
for ($i=0; $i<12; $i++) {
if (isset($_POST['references_name_'.$i]) && !empty($_POST['references_name_'.$i])) {
include_get_params(DIR .'references.php?count='. $i);
} else {
break;
}
}
?>
Một ví dụ khác về việc bao gồm các tham số GET động để phù hợp với các trường hợp sử dụng nhất định. Hi vọng điêu nay co ich. Xin lưu ý rằng mã này không ở trạng thái hoàn chỉnh nhưng điều này đủ để giúp mọi người bắt đầu khá tốt cho trường hợp sử dụng của họ.