2015-02-04 66 views
1

我正在爲班級分配任務,我們必須創建一個動態網站。我們必須用HTML創建所有容器,然後將所有內容加載到MySQL DB上,然後使用Javascript讀取從MySQL收集內容的PHP文件。使用Javascript調用從MySQL數據庫讀取網站內容的PHP文件

我設法讓它從數據庫中拉出一個列表並顯示在我的網站上,但現在我堅持如何讓它讀取頁面的其他部分並將它們拉入html。

這裏是PHP我到目前爲止:

$con=mysqli_connect("localhost","Username","password",'DBname'); 

if (mysqli_connect_errno()){ 
    die("Error: " . mysqli_connect_error()); 
} 

$result = mysqli_query($con,"SELECT * FROM HomeList"); 

echo "<ul>"; 

while($row = mysqli_fetch_array($result)){ 
     echo "<li>".$row['ListItem']."</li>"; 
    } 
    echo "</ul>"; 

    mysqli_close($conn); 
?> 

這裏是我的javascript:

function getOutput() { 
    getRequest(
     'php/getinfo.php', 
     drawOutput, 
     drawError 
); 
    return false; 
} 

// handles drawing an error message 
function drawError() { 
    var container = document.getElementById('id'); 
    container.innerHTML = 'Error has occurred'; 
} 

// handles the response, adds the html 
function drawOutput(responseText) { 
    var container = document.getElementById('id'); 
    container.innerHTML = responseText; 
} 
// helper function for cross-browser request object 
function getRequest(url, success, error) { 
    var req = false; 
    try{ 
     // most browsers 
     req = new XMLHttpRequest(); 
    } catch (e){ 
     // IE 
     try{ 
      req = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      // try an older version 
      try{ 
       req = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       return false; 
      } 
     } 
    } 
    if (!req) return false; 
    if (typeof success != 'function') success = function() {}; 
    if (typeof error!= 'function') error = function() {}; 
    req.onreadystatechange = function(){ 
     if(req .readyState == 4){ 
      return req.status === 200 ? 
       success(req.responseText) : error(req.status) 
      ; 
     } 
    } 
    req.open("GET", url, true); 
    req.send(null); 
    return req; 
} 

我想重用的代碼量可能的,但對於從數據庫中拉內容而不必擁有多個JS和PHP文件。而且我們嚴格遵守不使用插件或Bootstrap的命令。

任何幫助將是偉大的! 謝謝!

+0

聽起來像你需要更多的功能,創建XMLHttpRequest實例拉動不同的事情。或者,如果您想要立即返回各種部分,請返回JSON並將其全部解析爲一個Ajax請求。 – developerwjk

回答

0

解決方案可能是聲明一個新函數(例如updateElt),它通過給它參數url('php/getinfo.php')來調用getOutput,但您還需要按順序設置'id'參數更新正確的元素。

所以,你必須聲明腳本中的一個id變種(未在功能),併爲其分配在updateElt的值。通過這種方式,id將對腳本具有全局範圍,並且您可以在drawError和drawOutput函數中訪問它。

相關問題