2011-12-19 43 views
1

这是我的代码:PHP - AJAX和MySQL

<?php 

$q=$_GET["q"]; 

require("../db.php"); 

$res_prop_name = mysql_query("select * from property where prop_short='$q'"); 

$row_prop_name = mysql_fetch_assoc($res_prop_name); 

echo $row_prop_name['prop_name']; 

?> 

<script type="text/javascript"> 

function showProperty(str)  
{ 

if (str=="") 
{ 

     document.getElementById("prop_name").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("prop_name").innerHTML=xmlhttp.responseText;  
    } 

} 

xmlhttp.open("GET","ajax/get-property-name.php?q="+str,true); 

xmlhttp.send(); 

} 

</script> 

<select id="prop_short" name="prop_short" onchange="showProperty(this.value)"> 

<option value="">Select a property</option> 

<option value="Property2">Property1</option> 

<option value="Property2">Property2</option> 

</select> 

<input type="text" id="prop_name" name="prop_name" onChange="showProperty(this.value)"> 

回答我的问题肯定是非常简单的,但是我就是不能使它工作。

据我所知,在ajax脚本中,innerHTML将文本提供给具有id prop_name的div。我试过了,它工作。但我如何将返回的文本提供给输入类型=“文本”字段?我试过innerText而不是HTML,但它不起作用。

+1

对于输入元素,它是document.getElementById(“xxx”)。value而不是.innerHTML – Alfabravo 2011-12-19 19:24:19

+0

很多很多,谢谢。有效! – Peter 2011-12-19 19:26:14

+0

你走了。已经被设定为答案。很高兴工作! :D – Alfabravo 2011-12-19 19:28:08

回答

1

将注释作为答案:对于输入元素,它是document.getElementById(“xxx”)。value而不是.innerHTML。

+0

我能再问一件吗?现在我的问题是,在一个领域,我需要饲料的属性名称和另一个属性所有者。我怎样才能做到这一点?我试图创建2个Ajax函数和2个PHP查询文件,但onchange =“showPropertyName(this.value)”onchange =“showPropertyOwner(this.value)”不起作用。我怎样才能做到这一点? – Peter 2011-12-19 19:45:59

+1

您可以使用一个SQL查询来完成此操作,从查询中获取两个值并一次更新两个字段。 如果你选择单独做,你可以使用一个独特的PHP,从属性选择prop_name,prop_owner与if-else [code] if($ _GET [“r”] == 1){echo $ row_prop_name ['prop_name '];} elseif($ _ GET [“r”] == 2){echo $ row_prop_name ['prop_owner'];} [/ code] ...然后,你的两个JS函数只需要以这种方式获取数据现在得到它,因为只有一个输出的PHP。希望它是某种明确的! – Alfabravo 2011-12-19 19:58:12

+0

我感谢您的帮助。非常感谢。我想到了这一点。我把它放在它现在工作的相同功能中。再次感谢您的快速响应。干杯 – Peter 2011-12-19 20:07:25