如何通过var';使用jquery&;php
我正在试图找出如何将我的表单var传递到页面如何通过var';使用jquery&;php,php,jquery,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) { documen
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");
// }
?>
我已经在谷歌搜索了两天,没有发现通过jquery/ajax/php将var发布到另一个页面的例子。。有人能帮我或给我指一个链接吗
非常感谢 回调函数不知道
success
url变量
尝试发出警报警报(数据)在success函数中编写>以查看是否调用了它。Dennis
提交表单后,如果希望使用新数据将用户带到页面,则不希望使用Ajax。只要将
上的“action”属性设置为“page_2.php”,就可以开始了。在这种情况下,您甚至不需要Javascript
<form method="post" action="page_2.php">
<!-- your form fields go here -->
</form>
在PHP方面,您的想法是正确的。我建议使用$\u POST
而不是$\u REQUEST
来减少CSRF的可能性。@Dennis-
注意,您正试图保存一个页面的状态,以便在第二个页面上使用
正确的方法是通过表单提交发布数据。您可以通过ajax请求来完成,但会给代码增加不必要的复杂性。当您需要将数据传递到服务器,但希望保持在同一页面上时,请使用AJAX
遵循Blackcoat的建议表格提交
记住,如果你只有一把锤子,那么你将敲打一切,包括你的拇指。始终先使用简单的解决方案。在成功回调中更改页面的URL时,为什么要使用Ajax?为什么不用一个简单的表格呢?那是我最后一次尝试。。我确实尝试过使用document.location.href=“./page_2.php”;尝试了“警报(数据)”,并获得了数组([登录]=>dennis@test.com[pass]=>testpass[u utma]=>184037297.17631186.1271628080.1273616918.1275392275.3[u utmz]=>184037297.1271628080.1.1.utmcsr=(直接)UTMCN=(直接)utmcmd=(无)[u una]=>8a516e-128897be867-32a12505-2)因此,它正在发送到页面,但当它重定向时,它不发送。当页面加载时,提取($_请求)只有数组2(3[u utma]=>184037297.17631186.1271628080.1273616918.1275392275.3 4[u utmz]=>184037297.1271628080.1.1.utmcsr=(直接)| utmccn=(直接)| utmcmd=(无)5[u unam]>8a516e-128897be862-A1326)@Dennis,最终重定向不会发布数据。ajax调用将发送数据,执行页面,并将结果返回到当前页面。更改位置只会将浏览器发送到新的url(如单击链接)这被认为是一个GET,所以唯一的解决方案是将它们传递到url..当我将它们传递到新url时,我需要将一些表单数据发送到下一页(
$('form').submit(function() {
var url = 'page_2.php';
$.post(url, $(this).serialize(), function( data ) {
console.log("Success!\nData: " + data);
});
return false;
});