php - 通过javascript提交两个表单而无需点击

标签 php javascript forms function post

我正在使用以下代码自动提交表单

<script type="text/javascript">
$(function () {
    $('#submit').click();
});
</script>

<div style="display:none">
<form method="post" action="http://mydomain/texting/register.php?list_id=15">
<input type="hidden" name="name" value="<?php echo $_SESSION['name2']; ?>" />
<input type="hidden" name="email" value="<?php echo $_SESSION['email2']; ?>" />
<input type="hidden" name="ok" value="1" />
<input type="submit" id="submit" value="Sign Up" style="visibility:hidden;" />
</form>
</div>

我想将相同的数据提交到两个 url ...

http://mydomain/texting/register.php?list_id=15
http://mydomain.com/texting/register.php?list_id=<?php echo $_SESSION['city2']; ?>

如何编辑我的代码以自动提交相同的表单数据?

我试过这段代码

<script type="text/javascript">
function submitTwice(f){
f.action = 'http://mydomain.com/texting/register.php?list_id=<?php echo $_SESSION['city2']; ?>';
f.target='ifr1';
f.submit();
f.action = 'http://mydomain.com/texting/register.php?list_id=15';
f.target='ifr2';
f.submit();
}
</script>
*/


<script type="text/javascript">
$(function () {
    $('submitTwice(f)').click();
});
</script>


<div style="display:none">
<iframe name="ifr1" width="20" height="20">
<form method="post" action="http://mydomain.com/texting/register.php?list_id=<?php echo $_SESSION['city2']; ?>">
<input type="hidden" name="name" value="<?php echo $_SESSION['name2']; ?>" />
<input type="hidden" name="email" value="<?php echo $_SESSION['email2']; ?>" />
<input type="hidden" name="ok" value="1" />
<input type="submit" id="submit" value="Sign Up" style="visibility:hidden;" />
</form></iframe>
</div>
<div style="display:none"><iframe name="ifr2" width="20" height="20">
<form method="post" action="http://mydomain.com/texting/register.php?list_id=15">
<input type="hidden" name="name" value="<?php echo $_SESSION['name2']; ?>" />
<input type="hidden" name="email" value="<?php echo $_SESSION['email2']; ?>" />
<input type="hidden" name="ok" value="1" />
<input type="submit" id="submit" value="Sign Up" style="visibility:hidden;" />
</form></iframe>
</div>

但它不起作用,任何实现它的建议,相同的数据将使用 javascript 自动发送到两个 url

最佳答案

您可以使用 jQuerys ajax 并通过 post 将数据发送到两个 url。

首先将要发送的所有数据保存在一个有效的数据数组中。如果你想让它自动化,你可以这样做:

var sendData = {};
$("#formId").find("input").each(function(i, item){
    sendData[item.name] = item.value;
});

或者作为一个简单的字符串:

var sendData = "name=value&email=value";

然后使用 ajax 将表单数据发送到两个 url,作为 post 类型:

$.ajax({ url: "http://url1/", type: "POST", data: sendData,
         success: function(response){
             alert(response);
         }
});
$.ajax({ url: "http://url2/", type: "POST", data: sendData,
         success: function(response){
             alert(response);
         }
});

注意:确保返回 false 到按钮或发送表单,你可以这样做:

$("formId").submit(function(){
    // do ajax send data
    return false;
}

编辑:为此添加未经检查的代码,带有注释

$(document).ready(function(){
    // grab the form and bind the submit event
    $("#formId").submit(function(){
        // collect all the data you want to post
        var sendData = {};
        this.find("input").each(function(i, item){
            sendData[item.name] = item.value;
        });

        // send the request to both urls with ajax
        $.ajax({ url: "url1", type: "POST", data: sendData,
                 success: function(response){
                    // handle response from url1
                    alert(response);
                 }
        });
        $.ajax({ url: "url2", type: "POST", data: sendData,
                 success: function(response){
                    // handle response from url2
                    alert(response);
                 }
        });

        // return false, to disable default submit event
        return false;
    });
});

关于php - 通过javascript提交两个表单而无需点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344584/

相关文章:

iphone - Objective-C 表单框架

php - 通过 ANT 获取和使用父目录

javascript - 如何使用iframe或shadow dom创建跨浏览器子文档?

javascript - jQuery 选择器 $("element", $(document.body)) 是做什么的?

Ajax文件上传

php - 如何在 Zend Framework 2 中上传文件?

php - CSS背景和表单定位缩放

php - CSRF 保护在手机上失败

php - 使用 MySQL 从表中获取特定列表,然后获取剩余列表

javascript - 在 jQuery 闭包中,如何获取窗口属性描述符?