jak sugerowali inni ludzie, powinieneś używać AJAX. Polecam zajrzeć do przykładów javascript/Jquery wywołania AJAX.
Domyślam się, że chcesz zmodyfikować część sieci w zależności od opcji wybranej przez użytkownika, najlepszym sposobem na to jest posiadanie oddzielnego skryptu PHP, który odbiera wybraną opcję (przechwycony w javascript/JQuery) i zwraca nowy HTML, który chcesz wyświetlić.
Na przykład w jQuery aby uzyskać wybraną opcję:
var selected_option_value=$("#select1 option:selected").val();
Również w jQuery zrobić wywołanie AJAX, przekazując wartość za pomocą 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);
}
);
nadzieję, że to pomaga!
EDIT: dajmy nieco więcej szczegółów na powyższym przykładzie:
powiedzmy masz stronę index.html gdzie masz <select name="select1">
podane w pytaniu:
pierwszym krokiem byłoby powiązać zdarzenie gdy ktoś wybrać jedną z opcji, jak to zrobić:
1- Pierwszy sposób to zrobić:
<select name='select1' id='select1' onchange='load_new_content()'>
ten sposób gdy ktoś zmieni wybraną wartość z listy <select>
, zostanie wykonana funkcja javascript load_new_content()
. Uwaga Dodałem do tagu id='select1'
, który jest używany do wyszukiwania tego elementu w javascript/JQuery. Zawsze powinieneś używać atrybutu id, jeśli chcesz użyć tego znacznika w javascript/JQuery.
2- Drugi sposób powiązać zdarzenie przy użyciu jQuery:
Aby to zrobić trzeba mieć <script>
tag wewnątrz <head>
z index.html. Wewnątrz tej <script>
tag powinien mieć:
$(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"
});
Niezależnie opcja chcesz użyć teraz trzeba to load_new_content()
funkcję. Powinien być również zadeklarowany wewnątrz znacznika <script>
znacznika <head>
, podobnie jak funkcja $ (document) .ready.
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
}
);
}
Teraz jedyne co pozostało, to ten 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";
?>
bez javascript jej nie możliwe, –
Co jesteś próba zrobienia jest prosta z PHP. Czy na pewno nie szukasz kodu JavaScript? – aaaaaa123456789
Sprawdź to może być pomocna http://stackoverflow.com/questions/9170453/display-dropdown-values-based-on-previous-dropdown – Hkachhia