他の人が示唆しているように、AJAXを使用する必要があります。AJAX呼び出しのjavascript/Jqueryの例を調べることをお勧めします。
ユーザーが選択したオプションに応じてWebの一部を変更したいと思います。これを行う最良の方法は、選択したオプション(javascript / JQueryでキャプチャ)を受け取り、必要な新しいHTMLを返す別のPHPスクリプトを用意することです。表示する。
たとえば、Jqueryで、選択したオプションを取得するには、次のようにします。
var selected_option_value=$("#select1 option:selected").val();
また、JqueryでAJAX呼び出しを実行し、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);
}
);
お役に立てれば!
編集:上記の例にもう少し詳しく説明しましょう:
<select name="select1">
あなたがあなたの質問で与えられたindex.htmlページを持っているとしましょう:
最初のステップは、誰かがオプションの1つを選択したときにイベントをリンクすることです。これを行う方法は、次のとおりです。
1-それを行う最初の方法:
<select name='select1' id='select1' onchange='load_new_content()'>
このようにして、誰かが<select>
リストの選択された値を変更すると、javascript関数load_new_content()
が実行されます。タグに追加id='select1'
したことに注意してください。これは、javascript /JQueryでこの要素を検索するために使用されます。このタグをjavascript/JQueryで使用する必要がある場合は、常にid属性を使用する必要があります。
2- 2番目の方法では、JQueryを使用してイベントをリンクします。
これを行うには、index.html<script>
の中にタグを付ける必要があります。<head>
この<script>
タグの中には、次のものがあります。
$(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"
});
load_new_content()
使用するオプションに関係なく、この関数が必要になります。$(document).ready関数と同様に、タグ<script>
のタグ内でも宣言する必要があります。<head>
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
}
);
}
今残っているのはこれだけです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";
?>