2015-02-10 51 views
0

我目前使用兩個頁面,一個是我的Main.php,另一個是爲了讓我的AJAX工作的PHP代碼(ajaxModule.php)。我還使用了我用來檢索數據以填充選擇下拉列表等的SQL數據庫。我有一個文本框,用戶可以在其中輸入模塊代碼和其下方的文本框,模塊名稱將自動填寫,因此用戶不必將其寫出。我能夠使用下面的AJAX函數來檢索正確的模塊名稱,但我無法將其輸出到文本框中,而是我發現的唯一一件作品是跨度。我意識到一個文本框只是用於輸入,但我已經找到了在文本框中輸出的方法,但無法讓它們工作。我也試圖將我從頁面中的PHP獲得的數組值傳遞給Main.php,以便以這種方式輸出,但是我似乎無法使其工作。在文本框中輸出

這裏是你從我Main.php頁面需要的代碼:

<div id="slide3" class = "unactiveSlide"> 
<form id = "requestForm"> 
<div id = "requestdiv"> 
<table> 

<tr><!-- This is where the user inputs the module code and the function is called with onkeyup--> 
<td><a href="#" title="Enter the module code e.g. 'COB290' i.e. Department Code followed by Part and Actual Module Code">Module Code</a></td> 
<?php 
echo "<td>"; 
echo "<input type='text' size='40' id='moduleCodeID' onkeyup='loadXMLDoc(this.value)'/>"; 
echo "</td>"; 
?> 
</tr> 

<tr><!-- This is where the module name appears with the use of AJAX--> 
<td><a href="#" title="The name of the module e.g. 'Team Projects'">Module Name</a></td>      
<?php 
<td><span id='moduleCodeToNameDiv'></span></td> 
</tr> 

</table> 
</div> 
</form> 
</div> 

這裏是AJAX功能是上面這段代碼,也是在Main.php(Q是我用過的變量在接下來的頁面結轉值):

<head> 
<script> 
//AJAX SCRIPT FOR MODULE CODE TO MODULE NAME 

function loadXMLDoc(str) 
{ 
var xmlhttp; 
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("moduleCodeToNameDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","ajaxModule.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 

這裏是我的AJAX文件中的代碼名爲ajaxModule.php:

<html> 
<body> 
<?php 

$q = $_GET["q"]; 

$con = mysqli_connect('localhost','root','','team06'); 
if (!$con) { 
die('Could not connect: ' . mysqli_error($con)); 
} 
mysqli_select_db($con,"reqs"); 

$sql = "SELECT Module_Title FROM module WHERE Module_Code = '" . $q."'"; 
$result = mysqli_query($con,$sql); 
while($row = mysqli_fetch_array($result)) 

{ 
echo $row['Module_Title']; 
} 
?> 
</body> 
</html> 

任何人都可以請告訴我如何得到它輸出到文本框? 在此先感謝,

Idris。

回答

0

要設置<input>值不分配給innerHTML代替:

Document.getElementById("xxx").value = xmlhttp.responseText; 

不要忘了逃跑$q

+0

您好,感謝您的答覆。我剛剛研究了innerHTML,但我不太明白我將這些代碼放在哪裏。你能告訴我我在哪裏使用它。提前致謝。 – IdrisAH 2015-02-10 16:05:25

+0

那麼現在輪胎把它放在'moduleCodeToNameDiv'中?將該ID替換爲輸入元素ID,並替換'.value'的'.innerHTML' – 2015-02-10 19:03:17