2011-12-19 44 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