2011-01-25 49 views
0

這裏是HTML/JS代碼:PHP回聲功能不會輸出到HTML DIV與使用innerHTML

<script type="text/javascript"> 
function loadXMLDoc() 
{ 
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("dd123").innerHTML=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","externalphpcode.php?t=" + Math.random(),true); 
xmlhttp.send(); 
} 
window.onload=loadXMLDoc(); 
</script> 

和外部PHP代碼:

<?php 
header ('Location: urlofHTMLcode'); 

$con = mysql_connect("hostname","databasename","password"); 

if (!$con) 
{ 
die('Test Error'.mysql_error()); 
} 

$db_selected = mysql_select_db("databasename", $con); 
if (!db_selected) 
{ 
die("Error 3 : ".mysql_error()); 
} 
$result= "SELECT COLUMN_1 FROM T_DEALS WHERE COLUMN_2 = '2011-01-03' 
and COLUMN_3 = 'VALUE_1'" or die ("Error 4 :".mysql_error()); 

$row = mysql_fetch_array($result); 

echo $row; 

mysql_close($con); 
exit(); 

這裏是我的問題我們一直在遇到,爲簡潔起見,大部分HTML/JS都進行了編輯。我已經驗證了HTML/JS文件通過改變PHP插入mySQL來準確調用外部PHP文件。我一直試圖通過與通過AJAX的「.responseText」命令配對的PHP回顯命令,將SQL查詢結果顯示在指定的DIV容器中。我究竟做錯了什麼? HTML中的對象引用似乎沒有問題,並且在調試PHP/mySQL連接時,錯誤消息將用代碼更改爲調用mySQL數據時不會發生的適當錯誤消息替換DIV值。

預先感謝您。

回答

2

你沒有打電話給的mysql_query您的查詢,以便您的$結果還不如讀

$result="String" Usless statement "String"; 

通常你的SQL存儲在一個單獨的字符串,所以你會改寫如下:

$sql= "SELECT COLUMN_1 FROM T_DEALS WHERE COLUMN_2 = '2011-01-03' and COLUMN_3 = 'VALUE_1'"; 
$result= mysql_query($sql); 
if(!$result) {die ("Error 4 :".mysql_error());} 

接下來,$ row var是一個數組,您應該使用for循環遍歷數組,或者訪問特定的索引。你不能直接回顯數組,你所得到的只是輸出中的「數組」。

for循環會是這樣的

for $cell in $row{ 
echo $cell; 
} 

和finnally在你發佈你中省略了最終的代碼?>所以一定要確保它實際上是在有你的PHP代碼。

另外我真的會推薦你使用jQuery而不是你使用的js計劃,因爲它會在不同的瀏覽器上運行得更少,如果你還沒有聽說過,這個教程會讓你開始http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

+0

我讀過http://php.net/manual/en/function.mysql-fetch-row.php和http://www.w3schools.com/PHP/php_mysql_select.asp這應該工作。即使我在mySQL中調用單個值,它也不會回顯到HTML中。也許responseText與echo函數不兼容? – user567623 2011-01-25 14:31:25

0

爲了跟進,我最終發現了這個錯誤。它似乎在我的.php調用函數,我把一個值,在限制正確的輸出頭。它與.js或.php語言無關。

UserZer0,你是絕對正確的......當我回顯$行它輸出數組。但是我終於得到了輸出並且可以用它來工作。

千謝謝你!