PHP-AJAX调用相同的php文件重复页面

时间:2012-03-28 07:12:33

标签: php ajax request

当我使用下面指出的ajax调用时,我的页面被看到2次。我认为ajax函数再次调用我的页面来查看返回结果。

<?
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 mixed html文件中使用参数q。例如,使用ajax我捕获person的值并将其放在q参数中,然后在sql查询中使用它(例如我将使用该查询来填充另一个下拉列表)

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

如何在不重复页面的情况下做到这一点?

*我不能把bc作为菜鸟

2 个答案:

答案 0 :(得分:1)

我想这段代码属于java.php

是的,您的ajax还使用java.php参数调用q文件。

你可以做两件事。

  • 您可以更改正在调用的文件,并在那里执行必要的操作,例如ajaxresult.php

  • 或者您可以在使用ajax

    调用代码时停止代码
    if(isset($_GET['q'])) {
    
        $q=(int)$_GET['q'];
        echo $q;
        exit;
     }
    

答案 1 :(得分:0)

您需要将所有内容都包含在1个文件中吗? 我相信它被命名为java.php - 你用ajax调用它,第一个条件将回显q,但是你的html代码也会被打印出来,因为没有别的。添加else,或将ajax调用的php放到不同的文件中。

编辑:你可以使用像这样的东西

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

编辑:经过测试,100%正常工作 - 取决于条件仅写入textsomeothertext,因此它也适用于您,是否仍在打印整页?