这是我的第一篇文章,对此我感到很困惑,请帮忙。
在页面上,我有两种symfony形式(无类),从中我可以获得一些存储在数组中的数据。第一种形式用于合同,另一种形式用于用产品数据(价格,数量等)填充产品数据表。在每种表格上,我都有一个提交按钮,我可以使用ajax(onclick)对其进行管理,以在不进行数据处理的同时前进到分页。列出产品的数据表是页面的结束步骤,在该表下有一个验证按钮,我要使用该按钮提交第一种形式的所有数据和提交第二种形式的数据表(其中是第二种形式的数据)以前已经存储在数组中。
我知道执行此操作的两种方法(使用jQuery的$ .post和使用ajax的另一种方法,但两种方法均无效)。我设法重定向到另一个页面,但无法获取$ _POST(或$ request)数据。
这是“最终按钮” ajax部分(与我在评论中尝试的另一种方式一样):
$("#btn_final").click(function( e ) {
// console.log(produits);
// $.post(
// path_confirm,
// { produits: produits },
// function() {
// window.location.replace(path_confirm);
// }
// );
$.ajax({
url: path_confirm,
type: 'POST',
// dataType: 'html',
data: { 'produits' : produits, 'contrat' : contrat },
// context: this,
// dataType: "json",
success:function(data) {
window.location.replace(path_confirm);
// console.log(data);
},
error:function(data) {
alert("erreur");
}
});
这是我应该获取数据的基本控制器:
public function getData(Request $request) {
// $produits = $request->request->get('produits');
// $contrat = $request->request->get('contrat');
if ($_POST) {
var_dump($_POST);die;
} else {
echo "<h1> no data :/ </h1>";die;
}
我被重定向到页面,但是答案是“没有数据”。 预先感谢您的帮助。
答案 0 :(得分:3)
由于重定向导致POST数据丢失。,AJAX请求期望通过AJAX返回信息。添加一个阻止默认值以停止重定向:
$("#btn_final").click(function( e ) {
e.preventDefault();
然后观察开发人员工具上的AJAX请求。如果$('#btn_final')
是一个提交按钮,则需要使用.submit()
处理程序。
如果您打算重定向到处理数据的PHP脚本,则完全不需要jQuery或AJAX。
答案 1 :(得分:0)
由于有一个名为“ redirect”的jQuery插件,我设法用一条简单的线完成了它。如果可以,以后可以帮助某人:
您需要的只是在您的视图中从此处导入脚本: linked
然后简单地写:
.format()
就我而言,我写道:
$.redirect(url, [values, [method, [target, [traditional, [redirectTop]]]]])
它有效。