我正在试图弄清楚如何将表单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发布到另一个页面的例子..任何人都可以帮助或指向一个链接,可以吗?
非常感谢!
答案 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);
以查看它是否被调用..