2012-11-18 62 views
1

最近開始學習AJAX,我正在試着製作一個評論部分,如前所見。 youtube哪裏沒有頁面刷新需要加載提交的評論。下面是我到目前爲止有:沒有與JS,AJAX,PHP的刷新評論部分

HTML:

<head><script src="JS/AJAX.js"></script> 
<body> 
    <form method="post" action=""> 
    User: <input type="text" id="name" /><br> 
    Comment:<br> 
    <textarea rows="5" cols="50" wrap="on" id="comment></textarea><br> 
    <button id="submit">Submit</button> 
    </form> 

    <h3>Comments go here:</h3> 
    <div id="commentarea"></div> 
</body> 

我不知道我怎麼能插入註釋數據庫而無需刷新頁面。如果我使用讓我們說insert.php(插入字段中的數據到數據庫中)作爲它將刷新頁面的動作。

JS/AJAX(目前使用的XMLHttpRequest();不包括try和catch塊,找出瀏覽器):

function ajaxFunction(){ 
    var ajaxRequest = new XMLHttpRequest(); 

    ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 
     document.getElementById("commentarea").innerHTML = ajaxRequest.responseText; 
     } 
    } 
    ajaxRequest.open("GET","fetch-data.php",true); 
    ajaxRequest.send(null); 
} 

PHP(取-data.php):

<?php 
$con = mysql_connect("localhost","root","") or die(mysql_error()); 

$mysql_select_db('localh',$con); 

$query = mysql_query("SELECT User, UserComment FROM content"); 
if(!$query){ 
    die(mysql_error()); 
} 

while($row = mysql_fetch_array($query)){ 
    echo "<h3>".$row['User']."</h3>"."<br>"; 
    echo "<p>".$row['UserComment']."</p>"; 
} 

mysql_free_result($query); 
mysql_close($con); 
?> 

單獨加載或使用「include」顯示提取過程起作用。

據我瞭解這一點後,我按下提交,它應該插入評論和用戶到數據庫中。然後,ajax應該使用fetch-data腳本來提取數據,然後將其添加到id爲「commentarea」的div。我無法弄清楚這將如何工作,更確切地說,我可以如何從窗體調用ajax函數。

回答

1

你可以在action =「...」屬性中調用javascript函數。如果該函數返回false,則表單不會被通常的post請求提交,但是您可以使用輸入數據作爲您的ajax請求。