这是我的第一篇文章,我被困在这个问题上,请帮忙。
在一个页面上,我有两个 symfony 表单(没有类),我从中获取一些存储在数组中的数据。第一个表格用于契约(Contract),另一个表格用于用产品数据(价格、数量等)填充产品数据表。在这些表单中的每一个上,我都有一个提交按钮,我使用 ajax (onclick) 管理该按钮,以便在阻止数据处理的同时前进到 pagen。列出产品的数据表是页面的结束步骤,在它下面有一个验证按钮,我想用它来提交第一种形式的所有数据和我提交的数据表(其中是第二种形式的数据)以前存储在数组中。
我知道有两种方法可以做到这一点($.post 使用 jQuery,另一种使用 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");
}
});
这是我的基本 Controller ,据称是在获取数据:
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;
}
我被重定向到该页面,但答案是“无数据”。 预先感谢您的帮助。
最佳答案
由于重定向导致POST数据丢失,AJAX请求期望通过AJAX返回信息。添加阻止默认值以停止重定向:
$("#btn_final").click(function( e ) {
e.preventDefault();
然后在开发者工具上观察AJAX请求。如果 $('#btn_final')
是一个提交按钮,您将需要使用 .submit()
处理程序。
如果您打算重定向到处理数据的 PHP 脚本,则完全不需要 jQuery 或 AJAX。
关于javascript - 无法从 Javascript 获取发布数据到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52184871/