将不强制页面重新加载的提交按钮组合在一起

时间:2013-01-23 23:18:48

标签: html ajax

我在一个页面上有几个表单(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个)。有人可以帮我解决这个问题吗?如果我能用它只使用一个数据,我可以自己扩展它,我假设。

2 个答案:

答案 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对我帮助很大。我想把它发布给任何后来偶然发现的人。