通过$.post触发jQuery的点击事件

3

我将通过jQuery post方法从pagex.php向pagey.php提交数据。

pagex.php 包含如下代码:

$('#btn').click(function(e) {
        e.preventDefault();
        var x = 'variable1';
        var y = 'variable2';
        $.post("/pagey.php", { var1: x, var2: y}, function(data) {});
    });

pagey.php 包含以下内容:

<form action=....>
<input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
<input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />
<input id="submit" type="submit" value="submit" />
<script type="text/javascript">$('#submit').trigger('click')</script>

基本上,当我从pagex.php提交值到pagey.php时,我希望能自动提交pagey.php上的表单。 pagey.php末尾的jQuery行将触发对提交按钮的自动单击。但是,jQuery没有触发提交单击。如果我直接访问paygey.php(我使用预定义变量进行了尝试),它可以工作,但不是通过从pagex进行$.post。我原以为通过从pagex使用$.post,pagey应该自动获取值并运行jQuery submit。这里的问题是什么。

使用控制台查看发送的事件和值 - MLS
@mls 发送的帖子值是正确的。点击触发器不起作用。只有在通过浏览器直接访问 pagey 时才有效。 - Pinkie
问题存在于按钮ID。 - MLS
请使用正确的ID,在控制台中找到它,$("#correctid").live(trigger,function(e){}); 应该可以工作。 - MLS
5个回答

0

我打赌这对你们中的一些人会很有用。敬礼。

<?php
    echo
    "<script type='text/javascript'>
        $(document).ready(function() {  
            $('#submit').trigger('click');
        }); 
    </script>";
?>

0

JavaScript(驱动jQuery)不在服务器上运行,而是从用户的浏览器中运行。因此,据我所知,为了运行那一小段脚本,您必须实际将用户发送到pagey.php页面。


是的,但您可以通过将返回的文档粘贴到当前文档中来运行此代码,从而运行JavaScript。但这可能会有其他的复杂性... - Alxandr
@Pinkie 如果你的用户永远不会看到pagey.php,那么我认为它没有意义。你应该将值从pagex.php传递到与pagey.php提交相同的页面,而不是将它们传递给pagey.php。 - CaffeinatedCM
pagey 正在向自身提交。因此,动作 URL 是 pagey.php。 - Pinkie
由于jQuery无法通过POST触发,我必须直接将用户发送到页面。我会接受这个答案。谢谢。 - Pinkie
1
奇怪的事情。我同意JavaJosh94的观点。为什么你需要pagey.php来发布自己呢?我的意思是,pagey.php在第一次发布之前已经知道了自己需要知道的信息,那么它还需要告诉自己什么呢?(基本上JavaJosh94的意思是“你做错了”)。 - oldwizard
显示剩余3条评论

0
<input type="text" name="x" value="<?php echo $_POST[var1] ?>" />
<input type="text" name="y" value="<?php echo $_POST[var2] ?>" />

应该是

<input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
<input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />

你需要修复你的数组索引。


是的,我已经像这样拥有它了。这是我问题中的一个打字错误。我确实提到如果直接访问pagey.php它可以工作。 - Pinkie
这个操作可行吗:$.post("/pagey.php", { var1: 'variable1', var2: 'variable2'}, function(data) {}); - Kevin Ji
这和我的代码中的那一行是相同的。有什么变化吗? - Pinkie

0

如果是一个自动提交的简单表单,你应该直接将其发布到页面上的操作URL。那么如果pagey的值是多少呢?

简单的答案是在pagey的document.ready中进行表单提交...


0

我认为更重要的问题是,如果您只是将数据重新发布到另一个页面,为什么要将数据发布到pagey?

请尝试直接将数据发布到操作页,并告诉我们是否有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接