通过post方法发送数据时保存数据

时间:2012-12-05 19:21:58

标签: php ajax

我有一个表格,例如:

<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中,然后再将其发送到“some external url” - 假设我的“保存到数据库”脚本位于“script / save”网址上。在通过此表单发送数据之前,如何将数据传输到那里?

修改

当“脚本/保存”给出正面响应时,我的表单只会被发送到“某个外部URL”,这样会很好。 你能帮帮我吗?

4 个答案:

答案 0 :(得分:0)

数据库访问在服务器上处理,这是您的表单传输到的。因此,为此,请将表单重新路由到服务器上的其他脚本;此脚本将写入数据库,然后调用“some external URL”。

答案 1 :(得分:0)

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

$("form").submit(function(){        
    $(this).ajaxSubmit({url: 'script/save', type: 'post'});
});

答案 2 :(得分: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);
?>

答案 3 :(得分:0)

嘿,只需在提交时使用ajax调用,然后在完成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>