在laravel中获得相同形式的不同结果

时间:2016-06-24 18:46:37

标签: php jquery ajax laravel

我正在尝试使用laravel创建一个ajax表单。显示是一个带有名称的表,名称旁边是用于执行操作的表单所包含的按钮。

这是html:

<div style="margin-top: 100px;">
<h2>Character settings</h2>
<table class="table table-striped table-bordered table-hover">
    <tr>
        <th>Name</th>
        <th>Map</th>
        <th>Move</th>
    </tr>
    @foreach($chars as $char)
    <tr>
        <td>{{$char['name']}}</td>
        <td>{{$char['map']}}</td>
        <td>
            {{Form::open(array('action' => 'UsersController@move', 'id' => 'mover'))}}
            <input type="hidden" name="charID" id="charID" value="{{$char['id']}}" />
            <button type="submit" class="btn btn-small btn-info">Move</button>
            {{Form::close()}}
        </td>
    </tr>
    @endforeach
</table>

这是javascript ajax处理:

$('#mover').on('submit', function(e){
    e.preventDefault();
    var $form = $( this ),
    method = $form.attr( "method" );
    $.ajax({
        url: "{{action('UsersController@move')}}",
        dataType: "json",
        data: $('#charID').val(),
        type: method,
        success: function (response) {
            console.log(reponse['test']);
        }
    });
});

这是控制器:

public function move() {
    return Response::json(array('test' => 'test'));
    exit();
}

表格如下: TRY_CONVERT (Transact-SQL)

如果我单击Sambte的第一个按钮,它可以工作,我在控制台中看到“test”。但是,当我点击第二个链接时,它不会发送为ajax并将我发送到一个新页面,其中json对象作为该页面的内容,所以我在新页面中看到{“test”:“test”}它给我带来了到。

我无法弄清楚出了什么问题。希望它在某个地方出现小错误。

谢谢

2 个答案:

答案 0 :(得分:0)

ID's是唯一的,您需要在表单上使用class

'class' => 'mover'

然后只需使用class代替选择器中的ID

$('.mover')

旁注,charID也需要做同样的事情,这就是我要解决的问题:

class="charID"

然后,在你的提交处理程序中:

data: $form.find('.charID').val()

答案 1 :(得分:0)

$(document).on('submit','.mover', function(e){
    e.preventDefault();
    var $form = $( this ),
    method = $form.attr( "method" );
    $.ajax({
        url: "{{action('UsersController@move')}}",
        dataType: "json",
        data: $(this).serialize(),
        type: method,
        success: function (response) {
            console.log(reponse['test']);
        }
    });
});

将id = mover更改为class = mover