如何提交表单并在DB中添加一行

时间:2012-04-01 04:29:46

标签: javascript jquery ajax

我遇到了这个javascript函数的问题。

如果我想提交表格,如果我在下面这样做,那就有效:

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

如果我想使用AJAX将行添加到数据库表中以导航到INSERTS VALUES的页面,那么下面的代码可以工作:

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

所以我认为能够提交表单并在数据库中添加一行,如果我在下面执行此代码,那么它应该可以工作,但事实并非如此。它提交表单但不在数据库中添加行。如何修复此代码以便提交表单并在DB中添加一行?以下是代码

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();
?>

1 个答案:

答案 0 :(得分: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();
    });   
}