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>

このデータを「外部 URL」に送信する前に、mySQL に保存する必要があります。たとえば、「データベースへの保存」スクリプトが「スクリプト/保存」URL にあるとします。このフォームからデータを送信する前に、そこにデータを転送するにはどうすればよいですか?

編集

「スクリプト/保存」が肯定的な応答を返すときに、フォームが「外部URL」にのみ送信されると便利です。それも手伝ってくれませんか?

4

4 に答える 4

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>
于 2012-12-05T19:33:51.313 に答える
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

フォームの onsubmit イベント中に URL にデータを送信するには、ajax を使用する必要があります。次のコードはあなたのために働くかもしれません。

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

データベースへのアクセスは、フォームの転送先であるサーバーで処理されます。したがって、これを行うには、フォームをサーバー上の別のスクリプトに再ルーティングします。このスクリプトはデータベースに書き込み、「何らかの外部 URL」を呼び出します。

于 2012-12-05T19:24:40.847 に答える