我的控制器
public function postCreate()
{
//validamos reglas inputs
$rules = array(
'inputuser' => 'required|max:10',
'inputpassword' => 'required|min:8',
'inputpassword1' => 'required|min:8',
'inputemail' => 'required|email|unique:users,email'
);
$validation = Validator::make(Input::all(), $rules);
//Si no pasa la validacion
if($validation->fails())
{
//Obtenemos los mensajes de error de la validation
$messages = $validation->messages();
//Redireccionamos a nuestro formulario de atras con los errores de la validación
if(Request::ajax())
{
return Response::json(array('errors' => $messages));
}
else
{
return Redirect::back()->withInput()->withErrors($validation);
}
}
//Si todo ha ido bien guardamos
$password = Input::get('inputpassword');
$user = new User;
$user->username = Input::get('inputuser');
$user->password = Hash::make($password);
$user->email = Input::get('inputemail');
$user->admin = (Input::get('es_admin') == '1') ? 1 : 0;
//guardamos
$user->save();
//redirigimos a usuarios
return Redirect::to('admin/users.index')->with('status','ok_create');
}
我在ajax中的main.js
$("document").ready(function()
{
$("#formuser-create").submit(function()
{
event.preventDefault();
var form = $(this);
$.ajax({
url: 'users/create',
dataType:'json',
data: form.serialize(),
type: "POST",
success: function(response)
{
if(response.success)
{
$("#box-modal").modal('hide');
}
else(response.error)
{
$.each(response.errors, function( index, value ) {
$("input[name='"+index+"']" ).css('border: 2px solid #FF0000;');
$("input[name='"+index+"']" ).parent().append(value[0]);
});
}
},
error: function(xhr, textStatus, thrownError)
{
console.log(xhr.status);
console.log(thrownError);
console.log(textStatus);
}
});
});
});
我想重定向到admin / user并加载视图index.blade,如果它成功,则显示“ok_create”消息。但不要隐藏窗口模态。 我认为不要隐藏ajax中的模态窗口,因为我正确地在我的控制器中重定向。
我必须在ajax中制作所有代码吗? ,使用window.location.href并发送值ok_correct
我很困惑,有人可以用一个例子来帮助我吗?
答案 0 :(得分:0)
如果您重定向到另一个页面,则只有选项是再次打开模式,因为它将是全新的页面加载。您可以将@if语句与一些布尔标志一起使用。
在这种情况下,您可以将用户重定向到另一个URL并包含控制器将在视图中再次设置的参数。在视图中,您可以在页面加载事件后以编程方式触发模式。
如果您希望模态保持打开并查看模态后面的更改,那么您需要创建动态ajax网站。它相对复杂,我不相信这是值得的。