2012-04-01 44 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

相关问题