2011-11-01 63 views
0

現在,我正在開發PHP中的Web項目,並且在下一階段中,我們將把原始回發選項更改爲AJAX。上週,我們實現了一個線程註釋頁面,我們用php將註釋發送到mySQL,本週我們希望這是異步發生的,而不是使用回傳...我有點困惑如何使用這個將回傳更改爲AJAX

我們預計使用jQuery庫,顯然是使用AJAX。我已經使用AJAX.net工具包,但那不是AJAX,所以我有點困惑如何進行轉換。繼承人,如果你想它的一些代碼...

if($_POST){ 

//Connection string to get to database 
$host = 'localhost'; 
$user = 'user'; 
$password = 'pw'; 
$dbh = new mysqli($localhost, $user, $password, "database schema name"); 

//Prpared statement for user inpur, prevent sql-injection attacks 
$isEntered = $_POST['txt_isEntered']; 
$stmt = $dbh->prepare("INSERT INTO tbl_Comment (comment, project_title, parent_comment_id) VALUES (? , ? , ?)"); 
$stmt->bind_param('ssi', $prevComment, $prevAssignment, $parentID); 

//if this is for parent level comments 
if(strcmp($isEntered, 'yes') == 0){ 

    $prevComment = $_POST['txt_comment']; 
    $prevAssignment = $_POST['txt_assignment']; 
    $parentID = $_POST['txt_pid']; 


    $stmt->execute(); 
} 
    if(strcmp($isEntered, 'nested') == 0){ 

    $prevComment = $_POST['txt_nestedComment'];  

    $prevAssignment = $_POST['txt_assignment']; 
    $parentID = $_POST['txt_pid']; 

    $stmt->execute(); 

} 

//redirect page 
header("Location: viewComments.php"); 
exit(); 

}

這是在頁面的開頭和使用後,重定向,刷新方法(在情況下,如果用戶刷新頁面,它當用戶按下插入按鈕,頁面重定向本身,去到t不重複插入命令,因爲它會將自身重定向)

繼承人是獲取信息的代碼...

  echo "<form action=\"viewComments.php\" method = \"post\">"; 
       echo "<textarea rows='3' cols='20' name='txt_nestedComment'>Enter comment here...</textarea>" . "</br>"; 
       echo "<input tpye = 'text' name = 'txt_assignment' value = $assignment class = 'hidden'>"; 
       echo "<input tpye = 'text' name = 'txt_pid' value = $cid class = 'hidden'>"; 
       echo "<input tpye = 'text' name = 'txt_isEntered' value = 'nested' class = 'hidden'>"; 
     echo "<button type='submit'>Submit Comment</button>" ; 
     echo "</form>"; 

他之前的代碼,然後插入東西。任何想法開始將其轉換成AJAX?如果您需要更多代碼,請詢問!謝謝!

回答

0

使用Ajax,您可以擺脫表單。您將通過javascript將值發送到腳本。

$.ajax({ 
    type: "POST", 
    url: "addcomment.php", 
    data: "assignment=" + $('txt_assignment').val() + "&pid=" + $('txt_pid').val() + "Boston", 
    success: function(newTableRowCodeFromServer){ 
    $("#commmentsTable").append(newTableRowCodeFromServer); 
    } 
}); 

這將發送並處理數據,然後addComments將生成響應,該響應會生成要在當前表或註釋顯示結束時插入的行。

+1

對於數據,你可以一個ID設置的形式和使用類似:'數據:$(「#myForm的」)序列化(),' - 這是發送一個完整的形式向的一點清潔的方式服務器沒有手動指定每個字段。 –

+0

同意,很好的補充。 –

+0

嘿,謝謝你的回答。我只是想知道...所以我的sql代碼將在addcomment.php? – willykao