0

我有一个表格,例如:

<form method="post" action="some external URL">
    <input type="hidden" id="id" name="session_id" />
    <input type="hidden" id="val1" name="val1"  />
    <input type="hidden" id="val2" name="val2" />
    <input type="submit" value="Send" />
</form>

我需要先将这些数据保存到 mySQL 中,然后再将其发送到“一些外部 url”——假设我的“保存到数据库”脚本位于“脚本/保存”URL 上。在通过此表格发送数据之前,如何将我的数据传输到那里?

编辑

太好了,当“脚本/保存”给出积极响应时,我的表单只会发送到“某个外部 url”。你也能帮我解决这个问题吗?

4

4 回答 4

0

数据库访问是在服务器上处理的,这就是您的表单要传输到的地方。因此,为了做到这一点,将您的表单重新路由到服务器上的不同脚本;该脚本将写入数据库,然后调用“一些外部 URL”。

于 2012-12-05T19:24:40.847 回答
0

在表单的 onsubmit 事件期间,您需要使用 ajax 将数据发送到您的 url。以下代码可能对您有用。

$("form").submit(function(){        
    $(this).ajaxSubmit({url: 'script/save', type: 'post'});
});
于 2012-12-05T19:26:23.853 回答
0

不要将表单发布到外部 URL,而是将其发布到内部脚本:

<?php
// Process your $_POST here and get all the stuff you need to process your SQL statements.

// Then, POST to the external URL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "your external URL");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
?>
于 2012-12-05T19:28:19.657 回答
0

嘿,只需使用 ajax 调用 onsubmit 然后在 ajax 调用完成后提交表单

<html>
<head>
<script type="text/javascript">
    function doSomething()
    {
        xmlHttp = new XMLHttpRequest();
        xmlHttp.open('GET', 'yourscript.php, true);
        xmlHttp.onreadystatechange = function(){
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
                var response = xmlHttp.responseText;
                // response is what you return from the script
                if(response == 1){
                    alert('works');
                    form[0].submit;
                }else{
                    alert('fails');
                }
            }else{
                alert('fails');
            }
        }
        xmlHttp.send(null);
    }
</script>
</head>
<body>
    <form action="external-url" method="post" onsubmit="doSomething();">
        <input type="text" name="blah" id="blah">
        <input type="submit" value="save">
    </form>
</body>
</html>
于 2012-12-05T19:33:51.313 回答