我在一个页面上有几个表单(1-20 +的任何地方),我希望每个表单都有自己的提交按钮。理想情况下,每个表单的提交按钮将表单中的数据POST到处理程序php文件,该文件将其提交到数据库。如果它用一些“数据提交”确认文本替换表单也是很好的,但这是我可以在稍后添加的顶部。我想用ajax这样做,但我不确定如何实现这一目标。
让我们假装我的表单是一个单独的字段,它看起来像这样:
<form action="submitHandler.php" method="post">
<input type="text" value="testdata" name="Details" id="details">
<button type="submit" onclick="functionThatSendsData">Submit</button>
</form>
这是我的getXMLHTTP()函数。我以前用过其他一些与ajax相关的东西,所以我很确定它是正确的
function getXMLHTTP() { //function to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
我不得不想象我的SubmitHandler.php会做这样的事情:
$data=$_POST['Details'];
//make connection to database, bail if no connection
$connection = odbc_pconnect('db','','');
if (!$connection) { exit("Connection Failed: " . $connection); }
//Insert Fields into DB
$sql = "INSERT INTO TestTable (Data) VALUES ('$data')";
$rs = odbc_exec($connection, $sql);
if (!$rs) { exit("Error in SQL"); }
看来我大多需要帮助处理将在提交按钮点击时执行的'functionThatSendsData'。这是一个简单的例子,但显然需要进行缩放以适应更多的字段值(大约10个)。有人可以帮我解决这个问题吗?如果我能用它只使用一个数据,我可以自己扩展它,我假设。
答案 0 :(得分:1)
您需要取消按钮的提交操作。
经典地将return false视为脚本的返回值。
return false;
或者在使用Jquery时在操作开始时声明一个preventdefault: http://api.jquery.com/event.preventDefault/
答案 1 :(得分:0)
http://www.webmaster-talk.com/javascript-forum/230390-how-can-i-submit-form-without.html
这个帖子中的帖子8对我帮助很大。我想把它发布给任何后来偶然发现的人。