2013-07-02 52 views
0

我現在有一個設置使用PHP來保存到MySQL數據庫:PHP保存到MySQL轉換爲使用AJAX

index.php - 包括形式爲用戶完成

validate.js - 一個Javascript驗證文件,以檢查用戶

:如果用戶反應已證實,將被重定向到這個文件,它在成功保存到數據庫,然後它們重定向到 - 提交到數據庫

save.php之前輸入3210

complete.php - 最後一頁。

我知道,隨着AJAX的實施,我可以刪除頁面重定向,使用戶體驗更清潔。

但是,在考慮重新編碼之前 - 我可以使用現有的save.php作爲新的AJAX工作方式的一部分,還是可以對代碼進行更改?

代碼爲save.php文件:

include_once("db.inc.php"); 

$rguid = $_POST["r"]; 
$ip=substr($_SERVER['REMOTE_ADDR'], 0, 50); 
$browser=substr($_SERVER['HTTP_USER_AGENT'], 0, 255); 

$q1 = $_POST["q1"]; 
$q1a = $_POST["q1a"]; 
$q2 = $_POST["q2"]; 
$q2a = $_POST["q2a"]; 
$q3 = $_POST["q3"]; 
$q3a = $_POST["q3a"]; 
$q4 = $_POST["q4"]; 
$q4a = $_POST["q4a"]; 
$q5 = $_POST["q5"]; 
$q5a = $_POST["q5a"]; 
$q6 = $_POST["q6"]; 
$q6a = $_POST["q6a"]; 
$q7 = $_POST["q7"]; 
$q7a = $_POST["q7a"]; 
$q8 = $_POST["q8"]; 
$q8a = $_POST["q8a"]; 
$q9 = $_POST["q9"]; 
$q9a = $_POST["q9a"]; 
$q10 = $_POST["q10"]; 
$q10a = $_POST["q10a"]; 

$respondent_id = decode_respondent_guid($rguid); 
$rcount=respondent_status($respondent_id); 

if ($rcount==0) { 

    $proc = mysqli_prepare($link, "INSERT INTO tresults (respondent_id, ip, browser, q1, q1a, q2, q2a, q3, q3a, q4, q4a, q5, q5a, q6, q6a, q7, q7a, q8, q8a, q9, q9a, q10, q10a) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"); 

    mysqli_stmt_bind_param($proc, "issisisisisisisisisisis", $respondent_id, $ip, $browser, $q1, $q1a, $q2, $q2a, $q3, $q3a, $q4, $q4a, $q5, $q5a, $q6, $q6a, $q7, $q7a, $q8, $q8a, $q9, $q9a, $q10, $q10a); 

    mysqli_stmt_execute($proc); 
    $mysql_error = mysqli_error($link); 
    if ($mysql_error!="") { 
    printf("Unexpected database error: %s\n", $mysql_error); 
    mysqli_stmt_close($proc); 
    mysqli_clean_connection($link); 
    exit(); 
} else 
{ 
    mysqli_stmt_close($proc); 
    mysqli_clean_connection($link); 
    update_completion_status($respondent_id, 'Started'); 
    header("Location: complete.php?r=".$rguid); 
} 
} else { 
    $proc = mysqli_prepare($link, "UPDATE tresults SET ip = ?, browser = ?, q1 = ?, q1a = ?, q2 = ?, q2a = ?, q3 = ?, q3a = ?, q4 = ?, q4a = ?, q5 = ?, q5a = ?, q6 = ?, q6a = ?, q7 = ?, q7a = ?, q8 = ?, q8a = ?, q9 = ?, q9a = ?, q10 = ?, q10a = ? WHERE respondent_id = ?;"); 

    mysqli_stmt_bind_param($proc, "ssisisisisisisisisisisi", $ip, $browser, $q1, $q1a, $q2, $q2a, $q3, $q3a, $q4, $q4a, $q5, $q5a, $q6, $q6a, $q7, $q7a, $q8, $q8a, $q9, $q9a, $q10, $q10a, $respondent_id); 

    mysqli_stmt_execute($proc); 
    $mysql_error = mysqli_error($link); 
    if ($mysql_error!="") { 
    printf("Unexpected database error: %s\n", $mysql_error); 
    mysqli_stmt_close($proc); 
    mysqli_clean_connection($link); 
    exit(); 
} else 
{ 
    mysqli_stmt_close($proc); 
    mysqli_clean_connection($link); 
    update_completion_status($respondent_id, 'Started'); 
    header("Location: complete.php?r=".$rguid); 
} 
} 

我需要什麼樣的變化,使我index.php文件利用AJAX?

回答

3

你只需發佈到該文件

jQuery.ajax({ 
    url: 'save.php', 
    data: $('form').serialize(), 
    type: "POST", 
    success: function(data) { 

    } 
}) 
+0

我假設我把這些代碼在'index.php'文件並調用它一旦用戶成功驗證? –