我遇到了这个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();
?>
答案 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();
});
}