如何使用jQuery Form Plugin发送我正在处理的表单的ajax版本作为变量然后发送到数据库?我想要提取几个输入(例如订单名称和日期)并将它们放在数据库或组织目的中,但我希望能够将整个订单表单存储在基础中,以便可以调用表单和如果需要,稍后编辑。 jQuery Form Plugin看起来很理想,但是它将表单发送到文件目的地,我需要将它发送到变量,然后我可以将它发送到数据库。如果有人对如何做到这一点有任何想法,将不胜感激!非常感谢你!
答案 0 :(得分:1)
如果您只想将表单发送到Laravel,您只需要jQuery就可以执行此操作:
jQuery('#saveButton').click(function(evnt) {
var href = $("#"+event.target.id).closest('form').attr('action');
var form = $("#"+event.target.id).closest('form').attr('id');
jQuery.post(href, jQuery("#"+form).serialize())
.done(function(data) {
if (data.success == "true") {
/// do what you need to do in case of success
} else {
/// do what you need to do in case of error
}
})
return false;
});
这是做什么的:
1)设置一个事件,点击标识为saveButton
2)获取表单动作
3)获取表单id
4)将整个表格序列化为Json
5)将表单发布到操作URL
6)我的控制器应该返回一些data
,具有success
属性,我检查并做我在前端需要做的事情
在您的Laravel控制器中,您只需:
Input::get('email');
Input::get('password');
你甚至可以这样做:
Post::create(Input::all());
请注意,Input::all()
会为您提供一系列字段,因此您可以删除不需要的内容。这只是一个例子来解释有很多方法可以在表中存储用户字段,这只是一个,非常简单:
$post = Post::find(Input::get('id'));
$post->title = Input::get('title');
$post->body = Input::get('body');
$input = Input::all();
unset($input['title']);
unset($input['body']);
$post->userFields = json_encode($input);
$post->save();
正如您在评论中指出的那样,您可以使用Input :: except()和循环来获取所需内容。
如果您需要将这些字段与Form::model()
一起使用,则可以将它们填回模型:
$post = Post::find(1);
foreach(json_decode($post->userFields) as $key => $value)
{
$post->attributes[$key] = $value;
}
然后通过它:
Form::model($post...);