như những người khác đã đề xuất, bạn nên sử dụng AJAX. Tôi muốn khuyên bạn nên xem xét javascript/Jquery ví dụ về một cuộc gọi AJAX.
Tôi đoán bạn muốn sửa đổi một phần của web tùy thuộc vào tùy chọn người dùng chọn, cách tốt nhất để làm điều này là có một tập lệnh PHP riêng biệt nhận tùy chọn đã chọn (được chụp trong javascript/JQuery) và trả về HTML mới bạn muốn hiển thị.
Ví dụ trong jquery để có được những lựa chọn chọn:
var selected_option_value=$("#select1 option:selected").val();
Cũng trong jquery để làm một cuộc gọi AJAX, đi qua các giá trị sử dụng POST:
$.post("script_that_receives_value.php", {option_value: selected_option_value},
function(data){ //this will be executed once the `script_that_receives_value.php` ends its execution, `data` contains everything said script echoed.
$("#place_where_you_want_the_new_html").html(data);
}
);
Hope this helps!
EDIT: chúng ta hãy đưa ra hơn chút chi tiết để ví dụ trên:
giả sử bạn có một trang index.html, nơi bạn có <select name="select1">
đưa ra trong câu hỏi của bạn:
bước đầu tiên sẽ là để liên kết một sự kiện khi ai đó chọn một trong các tùy chọn, làm thế nào để làm điều này:
1- cách đầu tiên để làm điều đó:
<select name='select1' id='select1' onchange='load_new_content()'>
Bằng cách này khi ai đó thay đổi giá trị đã chọn của danh sách <select>
, chức năng javascript load_new_content()
sẽ được thực hiện. Chú ý tôi đã thêm id='select1'
vào thẻ, điều này được sử dụng để tìm kiếm phần tử này trong javascript/JQuery, bạn nên luôn sử dụng thuộc tính id nếu bạn cần sử dụng thẻ đó trong javascript/JQuery.
2- cách Thứ hai, liên kết các sự kiện sử dụng JQuery:
Để làm điều này, bạn nên có một thẻ <script>
bên trong <head>
của index.html. Bên <script>
thẻ này bạn nên có:
$(document).ready(function(){
// everything here will be executed once index.html has finished loading, so at the start when the user is yet to do anything.
$("#select1").change(load_new_content()); //this translates to: "when the element with id='select1' changes its value execute load_new_content() function"
});
Bất kể các tùy chọn mà bạn muốn sử dụng bây giờ bạn cần load_new_content()
chức năng này. Nó cũng phải được khai báo bên trong thẻ <script>
của thẻ <head>
, giống như hàm $.
function load_new_content(){
var selected_option_value=$("#select1 option:selected").val(); //get the value of the current selected option.
$.post("script_that_receives_value.php", {option_value: selected_option_value},
function(data){ //this will be executed once the `script_that_receives_value.php` ends its execution, `data` contains everything said script echoed.
$("#place_where_you_want_the_new_html").html(data);
alert(data); //just to see what it returns
}
);
}
Bây giờ điều duy nhất còn lại là này script_that_receives_value.php
:
<?php
$selected_option=$_POST['option_value'];
//Do what you need with this value, then echo what you want to be returned.
echo "you have selected the option with value=$selected_option";
?>
mà không cần javascript của nó không thể, –
gì bạn cố gắng làm là đồng bằng không thể với PHP. Bạn có chắc là bạn không tìm kiếm mã Javascript thay thế không? – aaaaaa123456789
Kiểm tra điều này có thể giúp bạn http://stackoverflow.com/questions/9170453/display-dropdown-values-based-on-previous-dropdown – Hkachhia