2012-03-23 14 views
0

私はそのようなhtmlファイルがあります。AJAX-phpの要求

<? 
$q=$_REQUEST['???'];//sth. like that 
echo $q; 
?> 

<form> 
<select name="users" onchange="showUser()"> 
<option value="">Select a person:</option> 
<option value="1">Peter Griffin</option> 
<option value="2">Lois Griffin</option> 
<option value="3">Glenn Quagmire</option> 
<option value="4">Joseph Swanson</option> 
</select> 
</form> 

を、私はPHPブロック内の同じページでのonchange値によって選択を使用します。

私は、オプションのいくつかを選択し、$ qのようなPHPの変数を表示したいだけです。どのように私は同じページでそれを行うことができますか?あなたのonchange=""関数呼び出しは、それはではjavascript関数へ

を選択ボックスで選択した値を運ぶ意味this.valueとして引数を持つことになりますAJAX要求

を処理するJavaScript関数を持っている必要があり

+0

?表示したいだけの場合は、JSで十分です。そうでなければ、phpファイルへのajaxリクエストが必要です。必要な操作の後、JSが値を返信します。これはJSがページ上に取り出して印刷します。 –

+0

1.ループを使ってオプションをビルドします。 2.一致する場合:値= q、「選択済み」を追加 – Teson

+0

これは明らかに通常どおり行うことができます。なぜあなたは同じページについて心配していますか? – Lion

答えて

0

JavaScript関数のshowUserそれは、Ajaxメソッド「open()」を実行するために、XMLHTTPオブジェクトを作成し、「send()

のようになります。

if (window.XMLHttpRequest) 
    { //For Other browsers 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    { //For internet Explorer 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

今機能が

xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("yourcontainerID").innerHTML=xmlhttp.responseText; 
//to display the response in the html container 
     } 
     } 

今すぐリクエストが送信されたPHPファイルとパラメータは、同様open()を使用して、URLのクエリ文字列やポスト変数を使用して取得することができるよう、応答の準備ができたときに実行される必要が作成されます方法

ここでは

xmlhttp.open("GET","urphpfile.php?q="+str,true); 
xmlhttp.send(); 

PHPフィルに「Q」の変数を受け取るためにではない、我々はそれゆえ、URLのクエリ文字列を使用していると仮定しましょうあなたは、PHPでそれを必要としないのはなぜ電子あなたは....ウルPHPファイルに

$q=$_GET["q"];// here you may use $_REQUEST["q"] which can hadle both $_POST and $_GET 

を行うことができますし、あなたが行われている....