2012-03-28 25 views
0

です。以下に示すajax呼び出しを使用すると、ページが2回表示されます。私は、戻り値を表示するために、ajax関数が私のページを再度呼び出すと思います。PHP-AJAXの呼び出しは、同じphpファイルの複製ページ

<? 
if(isset($_GET['q'])){ 
$q=(int)$_GET['q']; 
echo $q; 
} 
?> 
<html> 
<head> 
<script type="text/javascript"> 
function showUser(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","java.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<form> 
<select name="users" onchange="showUser(this.value)"> 
<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> 
</br><div id="txtHint"><b>Person info will be listed here.</b></div> 

</body> 
</html> 

しかし、私はPHPの混合HTMLファイルでパラメータqを使いたいだけです。例えば、AJAX私はその後、例えば、SQLクエリでそれを使用し、人の価値をキャッチし、qパラメータにそれを置く(私は別のドロップダウンリストを埋めるために、そのクエリを使用します)

"select * from persons where id=".$q; 

とどのようにすることができますページを複製することなくそれをしますか?

*私は新人

+0

と呼ばれるコードを止めることができると言うんどちらかあなたのページには何が複製されていますか?ページ全体が 'txtHint'に再び表示されますか?このページはjava.phpですか?もしそうでなければ、java.phpは何をレンダリングすべきですか? – Kosta

+0

全ページ。エコーの下で、選択ドロップダウンリストが繰り返されます。第2のリストの選択値は上記のエコーをもたらす。 –

答えて

0

であることのbcの画像を置くことができないあなたは1つのファイルにすべてのものを持っている必要がありますか? 私はそれがjava.phpと呼ばれていると信じています - あなたはajaxでそれを呼び出していますが、最初の条件はqをエコーし​​ますが、HTMLコードも出力されます。 elseを追加するか、ajaxによって呼び出されたphpを別のファイルに置きます。

編集:あなたはこの

<?php 
if (1==1) // or 1!=1 
{ 
?> 
text 
<? 
} 
else 
{ 
?> 
someothertext 
<? 
} 

EDITのようにいろいろ書いを使用することができますテストされ、100%の作業 - 状況に応じてはtextsomeothertextを書き込み、それはあまりにもあなたのために働く必要があり、それはまだ全体のページを印刷しています?

+0

が機能しませんでした。私はおそらくsth間違った –

1

私は考えます。このコードはjava.php

に属し、そう、あなたのアヤックスもqパラメータとjava.phpファイルを呼び出しています。

あなたは2つのことができます。

  • あなたが呼び出しているファイルを変更することができますし、そこに必要なものは何でも、ajaxresult.php

  • またはあなたはそれがアヤックス

    if(isset($_GET['q'])) { 
    
        $q=(int)$_GET['q']; 
        echo $q; 
        exit; 
    } 
    
+0

と私は別のパラメータまたはjava.phpのPHPの使用可能なパラメータに戻り値を格納することができますか?私はjava.phpとajax.phpでコードを解析します。 ajax.phpはecho $ q resultを含んでいますが、私はjava.phpのパラメータとしてqを使いたいと思います。解決策はありますか? –

+0

ドロップダウンリストを変更する必要がある場合は、jQueryや別のajaxを使用してページを再読み込みせずに行うことができます。ページを一度読み込んでjQueryを使ってドロップダウンリストを変更することができます –

+0

次にjQueryを調べてみましょう。すべての返信をありがとう。 –