2012-03-28 27 views
0

。我认为ajax函数再次调用我的页面来查看返回结果。当我使用下面所示的ajax调用时,我的页面被看到2次,在同一个php文件中复制页面时,PHP-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混合HTML文件中使用参数q。例如,与阿贾克斯我抓住的人的价值,并把它放在Q参数,然后在例如一个SQL查询中使用它(我将使用该查询来填充另一个下拉列表)

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

我怎么能这样做,而不复制该页面?

*我不能把图像BC的是新秀

+0

什么是在你的网页中重复?整个页面再次显示在'txtHint'中?这个页面是否是java.php?如果不是,那么java.php应该渲染什么? – Kosta 2012-03-28 07:20:09

+0

整个页面。在回显下,重复选择下拉列表。但第二个列表中的选择值会影响上面的回声。 – 2012-03-28 07:32:25

回答

0

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

编辑:您可以使用成才这样

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

编辑:经测试,100%的工作 - 根据条件只写textsomeothertext,所以它应该为你工作了,难道还要打印整个页面?

+0

没有工作。我可能做错了 – 2012-03-28 07:41:43

1

我想这个代码属于java.php

,是的,你的Ajax还呼吁java.php文件,q参数。

你可以做两件事。

  • 要么你可以改变你调用该文件,并采取一切必要措施那里,说ajaxresult.php

  • ,或者你可以停止代码时,它被称为阿贾克斯

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

和我如何可以将返回的值存储到另一个参数或可用的参数在php中的java.php?我用java.php和ajax.php解析代码。 ajax.php包含echo $ q结果,但是我想用q作为java.php中的一个参数。有没有解决方案? – 2012-03-28 07:31:01

+0

如果你只需要改变一些下拉列表,你可以使用jQuery或其他Ajax,而无需重新加载页面。您可以加载页面一次,并使用jQuery更改下拉列表 – 2012-03-28 07:41:11

+0

我将继续探索jQuery。谢谢你的回复。 – 2012-03-28 07:46:45

相关问题