Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JQuery和Laravel在modal中填写表单?_Jquery_Json_Ajax_Post_Laravel 4 - Fatal编程技术网

如何使用JQuery和Laravel在modal中填写表单?

如何使用JQuery和Laravel在modal中填写表单?,jquery,json,ajax,post,laravel-4,Jquery,Json,Ajax,Post,Laravel 4,我试图从我的数据库中检索一个用户的数据,并将其放在模式中的表单中,以便对其进行编辑。我尝试使用JQuery.post方法获取Json,但失败并向我发送500个内部服务器错误。我正在使用互联网上的一个例子作为参考,但我无法让它工作,我认为请求没有得到任何数据发送,正如我做的一些测试所显示的那样。我使用的是Laravel 4框架,以下是JQuery代码: <script> $(document).ready(function() { $('.edit').click(functi

我试图从我的数据库中检索一个用户的数据,并将其放在模式中的表单中,以便对其进行编辑。我尝试使用JQuery.post方法获取Json,但失败并向我发送500个内部服务器错误。我正在使用互联网上的一个例子作为参考,但我无法让它工作,我认为请求没有得到任何数据发送,正如我做的一些测试所显示的那样。我使用的是Laravel 4框架,以下是JQuery代码:

<script>
$(document).ready(function()
{
    $('.edit').click(function()
    {
        $('[name=user]').val($(this).attr('id'));
        var faction="<?php echo URL::to('getuser/data'); ?>";
        var fdata = $('#val').serialize();
        $.post(faction,fdata,function(json)
        {
            if(json.success)
            {
                $('#formEdit input[name="name_edit"]').val(json.name);
                $('#formEdit input[name="lastname_edit"]').val(json.lastname);
                $('#formEdit input[name="mlastname_edit"]').val(json.mlastname);
                $('#formEdit input[name="email_edit"]').val(json.email);
                $('#formEdit input[name="username_edit"]').val(json.username);
                if(json.level==true)
                {
                    $('#level.prop').prop('checked','true');
                }
                else
                {
                    $('#level').removeAttr('checked');
                }

            }
        }).fail(function(msg) {
          alert(msg.status + " " + msg.statusText);
        });
    });
});
</script>

$(文档).ready(函数()
{
$('.edit')。单击(函数()
{
$('[name=user]').val($(this.attr('id'));
var=”;
var fdata=$('#val').serialize();
$.post(派系、fdata、函数(json)
{
if(json.success)
{
$('#formEdit input[name=“name_edit”]”)val(json.name);
$('#formEdit输入[name=“lastname_edit”]').val(json.lastname);
$('#formEdit input[name=“mlastname_edit”]”)val(json.mlastname);
$('#formEdit input[name=“email_edit”]”)val(json.email);
$('#formEdit输入[name=“username_edit”]”)val(json.username);
if(json.level==true)
{
$('level.prop').prop('checked','true');
}
其他的
{
$(“#level”).removeAttr('checked');
}
}
}).fail(函数(msg){
警报(msg.status+“”+msg.statusText);
});
});
});
这是调用模式并发送post请求的按钮:

<span class="btn btn-info">{{HTML::link('#Edit','Editar',array('class'=>'edit','id'=>$user->id,'data-toggle'=>'modal','title'=>$user->name))}}</span>
{{HTML::link('Edit','Editar',array('class'=>'Edit','id'=>$user->id,'data-toggle'=>'modal','title'=>$user->name))}
这是控制器:

<?php 

class getuserController extends BaseController
{
    public function postData()
    {
    $user_id=Input::get('user');
    $user=User::find($user_id);
    $data=array(
        'success'=>true,
        'id'=>$user->id,
        'name'=>$user->name,
        'lastname'=>$user->lastname,
        'mlastname'=>$user->mlastname,
        'email'=>$user->email,
        'username'=>$user->username,
        'level'=>$user->$user->level
    );
    return Response::json($data);
    }
}

将Ajax与Laravel结合使用需要发送_令牌。这可以通过在每个页面上将令牌作为元标记来轻松实现

然后在设置表单数据时,使用
var-token=$(“meta[name='csrf_-token'])attr('content')发送令牌

我的想法如下:

    $(document).on('click', ".config", function() {
        var id = $(this).data('id');
        var token = $("meta[name='csrf_token']").attr('content');
        $.ajax({
            url: '/dashboard/ajax/load',
            type: 'POST',
            data: { id: id, _token: token },
            success: function (data, textStatus, jqXHR) {
                var obj = $.parseJSON(data);
                $(obj).each(function(key, value) {
                    var options = '<option value="' +value.id+ '">' +value.name+ '</option>';
                    $("#new_sub_element").append(options);
                });
            }
        });
$(document).on('click',.config',function()){
var id=$(this.data('id');
var-token=$(“meta[name='csrf_-token']”)attr('content');
$.ajax({
url:“/dashboard/ajax/load”,
键入:“POST”,
数据:{id:id,_-token:token},
成功:函数(数据、文本状态、jqXHR){
var obj=$.parseJSON(数据);
$(对象)。每个(功能)(键、值){
var options=''+value.name+'';
$(“#新#子#元素”)。附加(选项);
});
}
});

值的设置可以解析到您的模式窗口…希望这能帮助您:)

将Ajax与Laravel结合使用需要发送_标记。这可以通过在每个页面上将标记作为元标记来轻松完成

然后,在设置表单数据时,使用
var-token=$(“meta[name='csrf\u-token']”)发送令牌。attr('content');

我的想法如下:

    $(document).on('click', ".config", function() {
        var id = $(this).data('id');
        var token = $("meta[name='csrf_token']").attr('content');
        $.ajax({
            url: '/dashboard/ajax/load',
            type: 'POST',
            data: { id: id, _token: token },
            success: function (data, textStatus, jqXHR) {
                var obj = $.parseJSON(data);
                $(obj).each(function(key, value) {
                    var options = '<option value="' +value.id+ '">' +value.name+ '</option>';
                    $("#new_sub_element").append(options);
                });
            }
        });
$(document).on('click',.config',function()){
var id=$(this.data('id');
var-token=$(“meta[name='csrf_-token']”)attr('content');
$.ajax({
url:“/dashboard/ajax/load”,
键入:“POST”,
数据:{id:id,_-token:token},
成功:函数(数据、文本状态、jqXHR){
var obj=$.parseJSON(数据);
$(对象)。每个(功能)(键、值){
var options=''+value.name+'';
$(“#新#子#元素”)。附加(选项);
});
}
});

值的设置可以解析到您的模式窗口…希望这能帮助您:)

我让我的代码正常工作,我丢失了一个隐藏的文本字段,
name='user'
id=val
存储了用户id,这就是为什么它没有发送任何
值的原因;而且我的控制器中有一个语法错误,在
$user->level
中,我写了两次,虽然很简单,但我很高兴我做到了可以解决。

我让我的代码正常工作,我缺少了一个隐藏的文本字段,
name='user'
id=val
存储用户id的地方,这就是为什么它没有发送任何
值的原因;我的控制器中也有语法错误,在
$user->level
中,我写了两次,就这么简单,有点尴尬sing,但我很高兴我能解决这个问题。

错误500是由于没有发送_令牌造成的。通过在元标记中设置令牌,然后在发送ajax帖子之前获取它,可以解决这个问题。否则,您需要将其添加为隐藏字段。我更改了ajax方法以包含令牌字段,但是,我一直得到我在c中提到的异常错误500是由于不发送_令牌造成的。通过在元标记中设置令牌,然后在发送ajax帖子之前获取它,这可以解决。否则您需要将其添加为隐藏字段。我更改了ajax方法以包含令牌字段,但是,我一直得到我在上面的评论中提到的异常。我做了一些修改但是,在我的代码中,我的laravel.log文件不断向我发送一个ErrorException,在我的控制器文件中显示消息“试图获取非对象的属性”。我用我发送的数据的值发出警报,它返回“user=35”,因为35是我要编辑的用户的ID号,我想知道我的控制器是否可以使用此数据,或者这是否正确一个需要修复的错误。我对代码做了一些更改,但是,我的laravel.log文件不断向我发送一个ErrorException,在我的控制器文件中显示消息“试图获取非对象的属性”。我用我发送的数据值发出警报,它返回“user=35”,即我要编辑的用户的ID号35,我想知道如果我的控制器可以使用此数据或