1

我在一个页面上有几个表单(1-20+),我希望每个表单都有自己的提交按钮。理想情况下,每个表单的提交按钮会将表单中的数据发布到处理程序 php 文件,该处理程序 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 左右)。有人可以帮我解决这个问题吗?如果我可以让它只使用一个数据,我假设我可以自己扩展它。

4

2 回答 2

1

您需要取消按钮的提交操作。

经典地写 return false 作为脚本的返回值。

return false;

或者在您使用 Jquery 时在您的操作开始时声明一个 preventdefault:http: //api.jquery.com/event.preventDefault/

于 2013-01-23T23:37:30.043 回答
0

http://www.webmaster-talk.com/javascript-forum/230390-how-can-i-submit-form-without.html

该线程中的第 8 篇文章对我帮助很大。想我会把它贴给后来偶然发现这个的人。

于 2013-01-24T03:39:52.843 回答