如何使用jQuery和PHP

如何使用jQuery和PHP

问题描述:

我试图找出如何我的形式VAR的传递给anothe网页..如何使用jQuery和PHP

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的另一页的例子..谁能帮助或点我一个链接可以吗?

非常感谢!

+4

无论如何,当您在成功回调中更改页面的URL时,为什么要使用Ajax?为什么不使用简单的表单? – 2010-10-09 20:41:02

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

尝试提醒的东西alert(data);成功函数内,看它是否被调用..

+0

这是我最后一次尝试..我尝试使用document.location.href =“./page_2。php“; – Dennis 2010-10-09 21:04:02

+0

试过了”alert(data);并得到了阵列 ( [登录] => [email protected] [通] => testpass [__utma] => 184037297.1763131186.1271628080.1273616918.1275392275.3 [__utmz] => 184037297.1271628080.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(无) [__unam] => 8a516e-128897be867-32a12505-2 ) 因此,它正在发送到页面,但是当它重定向时,它不会发送。 – Dennis 2010-10-09 21:15:40

+0

当页面加载中,提取物($ _ REQUEST)只有阵列 2( 3 [__utma] => 184037297.1763131186.1271628080.1273616918.1275392275.3 4 [__utmz] => 184037297.1271628080.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd = (none) 5 [__unam] => 8a516e-128897be86 7-32a12505-2 6) – Dennis 2010-10-09 21:16:42

丹尼斯,

后提交一个表单,如果你想让用户访问使用新数据的页面,你不想使用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等)。

简化您的Ajax提交使用jQuery.post()。将其与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

对于'$ _POST' – Gutzofter 2010-10-10 04:00:10

@Dennis -

督察,你正试图从一个网页保存状态下在第二页上使用。

正确的做法是通过表单提交发布数据。你可以用ajax请求来完成,但是你在代码中添加了不需要的复杂性。当您需要将数据传递到服务器时,请使用AJAX,但希望保留在同一页面上。

关注Blackcoat的推荐。 表格提交

请记住,如果你只有一把锤子,那么你将会打包包括你的拇指在内的所有东西。总是先用简单的解决方案。