2012-04-01 112 views
1

我遇到了此javascript函數的問題。如何提交表格並在數據庫中添加一行

如果我想提交表單,如果我這樣做在它下面的工作:

function submitform() 
{ 
    var QandAO = document.getElementById("QandA"); 
    QandAO.submit(); 
} 

如果我想使用AJAX導航到該值插入到頁面中添加一行到一個數據庫表,然後將下面的代碼工作:

function submitform() 
{ 
    var fieldvalue = $("#QandA").val(); 
    $.post("insertQuestion.php", $("#QandA").serialize ,function(data){ 
     alert("data"); 
    }); 
} 

所以我認爲能夠提交表單,並添加一行到數據庫中,如果我做下面這段代碼,那麼它應該工作,但事實並非如此。它提交表單,但不會在數據庫中添加一行。這段代碼如何修復,以便提交表單並在數據庫中添加一行?下面是代碼

function submitform() 
{ 
    var fieldvalue = $("#QandA").val(); 
    $.post("insertQuestion.php", $("#QandA").serialize ,function(data){ 
     alert("data"); 
    }); 
    var QandAO = document.getElementById("QandA"); 
    QandAO.submit(); 
} 

InsertQuestion.php看起來像下面這樣:

<?php 
session_start(); 

$username="xxx"; 
$password="xxx"; 
$database="xxx"; 

mysql_connect('localhost',$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$insertquestion = array(); 
$insertquestion[] = "' ". mysql_real_escape_string($_POST['id']) . "'"; 

$questionsql = "INSERT INTO Question (SessionId) 
VALUES (" . implode('), (', $insertquestion) . ")"; 

mysql_query($questionsql); 
mysql_close(); 
?> 
+0

insertQuestion.php是什麼樣子的? – 2012-04-01 04:34:17

+1

學習正確調試。 Chrome開發者工具和Firebug是你的朋友。您可以看到JS錯誤和網絡請求,然後您可以明確發生故障的位置。另外,$(「#QandA」)。serialize應該是$(「#QandA」)。serialize()。 – Corbin 2012-04-01 04:36:59

+0

將insertQuestion.php添加到問題 – user1304328 2012-04-01 04:37:11

回答

1

我認爲這個問題是你的代碼的第二部分(表單提交)切斷第一部分是前完成。通過將表單提交到AJAX回調中給AJAX調用完成的機會:

function submitform() 
{ 
    var fieldvalue = $("#QandA").val(); 
    $.post("insertQuestion.php", $("#QandA").serialize ,function(data){ 
     alert("data"); 
     var QandAO = document.getElementById("QandA"); 
     QandAO.submit(); 
    }); 
} 
+0

謝謝,它已提交表單並添加行。謝謝 :) – user1304328 2012-04-01 04:52:57

相關問題