【发布时间】:2015-05-14 22:35:02
【问题描述】:
我有 ajax 请求:
<script>
$("#abc_form_submit").click(function(e) {
e.preventDefault();
//........
$.ajax({
type: "POST",
url: url,
dataType: 'json',
data: $("#abc_form").serialize(), // serializes the form's elements.
success: function(data)
{
if(data.success == 'false') {
// show errors
} else {
// SUBMIT NORMAL WAY. $("#abc_from").submit() doesnt work.
}
}
});
return false; // avoid to execute the actual submit of the form.
});
</script>
还有php
.....
return $this->paypalController(params, etc...) // which should redirect to other page
.....
如果成功,我应该如何发出 ajax 请求,以正常方式提交表单,因为现在如果我重定向(在 PHP)它唯一的返回响应,但我需要这个 ajax 请求将 php 代码作为正常表单提交处理(如果成功)
请不要建议“window.location”。
【问题讨论】:
-
为什么要提交两次表单?如果您要以“正常方式”提交表单,那么首先不要打扰 AJAX。
-
当您说
$("#abc_from").submit()不起作用时,有什么不起作用的,因为这就是这样做的方式?你有错误吗? -
@David 因为它是模态的,我需要在不重新加载的情况下显示错误,但如果它通过了,那么我需要正常的方式
-
@EimantasGabrielius:如果它“通过”,那么表单已经已经提交,为什么还要再次提交呢?这种设计毫无意义。通常,当通过 AJAX 提交表单时,成功或失败都会有一些有意义的响应。在失败的情况下,显示错误。 (你正在做什么。)在成功的情况下,对成功做出回应。也许对 UI 进行更改,也许将用户发送到另一个页面,等等。听起来你想将用户发送到另一个页面。就这样吧。
标签: javascript php jquery ajax laravel