如何使用jQuery POST方法在两个不同的页面之间传递数据?

时间:2015-08-11 15:57:02

标签: javascript php jquery html json

我有两个名为card_process.php和payment.php的php文件。我试图将数据从cart_process页面传递到付款页面。代码如下:

cart_process.php:

$paynow = "<button type='submit' id='reset' class='btn btn-danger' align='center' disabled>PAY NOW</button> ";

$cart_box_total = '<div class="cart-products-total" id="cart-products-total" name="subtotalsub">.$total.</div>';

?>

<script>
$(document).ready(function() {
    $("#reset").click(function() {
        var content = $('#cart-products-total').html();
            $.post("payment.php", { html: content})
            .done(function(data) {
            window.location = "payment.php";
            });
        });
});
</script>

在payment.php上:

<?php echo $_POST['html']; ?>

当页面重定向到payment.php时,$_POST['html']不会回复任何内容,但如果我在cart_process.php中使用alert(content),则会提醒我所需的数据。< / p>

如何将整个数据发布到页面?

2 个答案:

答案 0 :(得分:1)

window.location = "payment.php";替换为:

$('body').append( data );

看看它是如何运作的。最终,您可能想要指定目标目标元素:

<div id="ajax-target"></div>

然后代替$('body').append( data )

$('#ajax-target').html( data );

<强>更新

如果必须重定向,那么您不需要ajax。以下是如何做到这一点:

$(document).ready(function() {
    $("#reset").click(function() {
       var content = $('#cart-products-total').html();
       $('<form action="payments.php" method="POST"/>')
       .html( '<textarea name="html">' + content + '</textarea>' )
       [0].submit();
     });
});

答案 1 :(得分:0)

您对此处发生的操作顺序存在一些误解。您实际上是在两次调用payment.php 。在此处作为带有html参数的POST请求:

$.post("payment.php", { html: content})

,然后再次作为GET请求,不带任何参数:

window.location = "http://selina.co.il/payment.php";

客户端代码基本上忽略了POST请求的结果,只是将用户发送到GET请求,这自然不会echo任何事情。

你在尝试在这里做什么并不完全清楚,但是如果你正在使用AJAX,那么你可能真的不想将用户重定向到任何东西。所以不要这样做:

window.location = "http://selina.co.il/payment.php";

在AJAX回调中执行某些操作以修改当前页面。也许将data变量设置为页面上的某些内容?像这样的东西?:

$('#someDiv').html(data);

这真的取决于应该在这里发生的事情,我们无法从发布的代码中确定。

如果应用程序的流程 ,用户应该重定向到另一个页面,那么您有两个选择:

1:预期PHP代码中的GET参数而不是POST参数,并将其包含在重定向中:

window.location = "http://selina.co.il/payment.php?html=" + encodeURIComponent(content);

如果content是它所暗示的那样,可能会非常难看。

2:根本不要使用AJAX,只需要form个帖子payment.php