如何使用jquery& amp将var传递到另一个页面PHP

时间:2010-10-09 20:37:58

标签: php jquery

我正在试图弄清楚如何将表单var传递给其他页面。

var login = $('#login').val();
var pass = $('#pass').val();
var data = {
    login: login,
    pass: pass
};

$.ajax({  
    type: "POST",
    data: data,
    url: "page_2.php",
    success: function(data)
    {
        document.location.href = url;

    }
}); 

它根本不会发布到新页面..在page_2.php我有:

<?php
        $error = false;


        if (isset($_REQUEST))
        {
            extract($_REQUEST);   
            print_r($_REQUEST);
        }
//      else
//      {
//              header("location:page_1.php");
//      }

?>

我已经搜索了谷歌2天没有运气通过jquery / ajax / php将var发布到另一个页面的例子..任何人都可以帮助或指向一个链接,可以吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

丹尼斯,

提交表单后,如果要将用户带到使用该新数据的页面,则不希望使用Ajax。只需将<form>上的“操作”属性设置为“page_2.php”,即可开始使用。在这种情况下你甚至不需要Javascript。

<form method="post" action="page_2.php">
  <!-- your form fields go here -->
</form>

如果将来需要使用Ajax,我会提出一些建议。运行Firebug(用于Firefox)或Webkit的开发人员工具(用于Safari或Chrome)来检查发送的Ajax请求,以及它们是否/为什么失败。你有正确的想法,但你的数据可能永远不会进入page_2(例如,错误的URL,其他地方的Javascript错误阻止$ .ajax运行等)。

使用jQuery.post()简化您的Ajax提交。将其与jQuery.serialize()结合使用可收集所有表单数据,并将其绑定为<form>的提交处理程序。例如:

$('form').submit(function() {
  var url = 'page_2.php';
  $.post(url, $(this).serialize(), function( data ) {
    console.log("Success!\nData: " + data);
  });
  return false;
});

在PHP端,你有正确的想法。我建议使用$_POST代替$_REQUEST来降低CSRF的可能性。

答案 1 :(得分:1)

@Dennis -

IOW,你正试图从一页保存状态,以便在第二页上使用。

执行此操作的正确方法是通过表单提交发布数据。您可以使用ajax请求执行此操作,但是为代码添加了不必要的复杂性。当您需要将数据传递到服务器但希望保持在同一页面时,请使用AJAX。

按照Blackcoat的建议。 表格提交

请记住,如果你拥有的只是一把锤子,那么你将会用拇指敲打所有东西。始终先使用简单的解决方案。

答案 2 :(得分:0)

url回调函数不知道success变量...

尝试在成功函数中警告某些alert(data);以查看它是否被调用..