【发布时间】:2017-09-24 01:48:43
【问题描述】:
试图找出我在实施中做错了什么。
[编辑] - 因为我不清楚。我想让模态响应联系表单的成功执行。我希望模态显示给用户一个 Okay 按钮(我可以稍后编写代码)。
路线
Route::get('contact', 'PagesController@getContact');
Route::post('contact', 'PagesController@postContact');
查看
{{ Form::open(array('id' => 'form-contact', 'data-parsley-validate' => '')) }}
...
form inputs
...
{{ Form::close() }}
<div id="flash-overlay-modal" class="modal fade hide {{ $modalClass or '' }}">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">{{ $title }}</h4>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
控制器
public function postContact(Request $request)
{
... Some logic
Mail::to($data['email'])->queue(new ContactForm($data));
Redis::incr('send.contact');
//Redirect to contact page
// return redirect()->back()->with('success', true)->with('message','Your message was successfully sent. Ill be in touch soon');
$msg = array(
'status' => 'success',
'msg' => 'Message sent successfully',
);
// return response()->json($msg);
return Response::json(array('success' => true, 'payload' => View::make('pages.contact', $msg)));
JS
$(document).ready(function() {
$('#form-contact').on(submit, function(e) {
e.preventDefault();
var formEl = $(this);
var name = $('#name').val();
var company = $('#company').val();
var email = $('#email').val();
var subject = $('#subject').val();
var message = $('#message').val();
var datastring = {
name: name,
company: company,
email: email,
subject: subject,
message: message
};
$.ajax({
type: "POST",
url: './contact',
data: dataString,
accept: {
javascript: 'application/javascript'
},
dataType: "JSON",
success: function(data) {
if (data.success) {
console.log(data);
// notice that we are expecting a json array with success = true and a payload
$('#masterModal').empty().append(data.payload).modal('show');
} else {
// for debugging
alert(data);
}
},
error: function(jqXHR, textStatus, errorThrown) { // What to do if we fail
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown + ' : ' + errorThrown);
}
});
});
});
响应
{
"success": true,
"payload": {}
}
我收到来自控制器的 JSON 响应,但它没有按预期激活模式。我搜索了几个地方寻求帮助,但找不到任何帮助。任何帮助或正确方向的观点将不胜感激。
谢谢!
【问题讨论】:
-
在您的
ajaxurl 字段中删除点并重试 -
你在使用引导程序吗?
-
@ViniciusLuiz - 是的,我正在使用引导程序...