Javascript 如何使用JSON和PHP将对象添加到表单提交上的数组中?

Javascript 如何使用JSON和PHP将对象添加到表单提交上的数组中?,javascript,php,jquery,json,laravel,Javascript,Php,Jquery,Json,Laravel,如何将已从数据库返回的对象添加到表单提交的数组中?我正在从我的数据库中检索我所有的玩家 $players = Player::all(); 然后像这样输出它们: <form> @foreach($players as $player) <ul> <li> <input type="checkbox" name="{{ $player->id }}"> {{ $player->fn }} {{ $play

如何将已从数据库返回的对象添加到表单提交的数组中?我正在从我的数据库中检索我所有的玩家

$players = Player::all();
然后像这样输出它们:

<form>

@foreach($players as $player)

<ul>

    <li>

    <input type="checkbox" name="{{ $player->id }}">
    {{ $player->fn }} {{ $player->ln }}

    </li>

</ul>

@endforeach

<input type="submit" value="Submit"> 

</form>

@foreach($player作为$player)
  • {{$player->fn}{{{$player->ln}
@endforeach

这就是我所说的“玩家池”,所有玩家都被加载并可以被“检查”。我只是想在这个页面上有两个部分,一个是玩家池,另一个是显示玩家池中选定的玩家。当玩家被签入时,他们将被添加到“玩家池”下方的“游戏中的玩家”部分,并将成为新表单的一部分,该表单可以再次提交到数据库,而不仅仅是页面。如何使用JSON和PHP实现这一点?

老实说,我不确定您希望如何使用JSON实现这一点,但您可能希望使用播放器ID作为复选框的值,而不是名称

<input type="checkbox" name="player_ids[]" value="{{ $player->id }}">


然后,您将在
$\u GET['player\u IDs']
中拥有一个玩家ID数组(或者
$\u POST['player\u IDs']
如果这最终成为一个POST表单。)

您将希望为表单提供一个类,这样您就可以开始构建jQuery函数,将玩家作为表单中的复选框进行选择

该函数将遍历dom并找到最近的li元素,然后将该数据附加到新表单中

我建议您重新考虑表单命名约定。因为你有它,你将提交一个独特的名称与每个复选框,我不认为这是你的意思说

<li>
<input type="checkbox" name="player_id[]" value="{{$player->id}}" />
<input type="text" name="player_fname[]" value="{{$player=>fname}}" />
<input type="text" name="player_lname[]" value="{{$player=lname}}" />
</li>

  • 就像你想要的一样,用于表单处理。不要忘记名称必须作为数组(即player_id[])提交,因为您将在一个表单中提交多个玩家

    太棒了!这正是我想要的。我原计划使用JSON和AJAX从池中加载播放器,而不刷新页面,但我决定将数据发布到另一个页面,以包含在第二个表单中。
    <input type="text" name="player_name" value="{{$player=>fname}}" />
    
    $(document).ready(function(){
    $(".player_form :checkbox").change( function() {
        var player = $(this).closest("li");
    
       //Now add this point into your new form
    
       $(".my_submit_form").append(player);
    )}
    });
    
    <li>
    <input type="checkbox" name="player_id[]" value="{{$player->id}}" />
    <input type="text" name="player_fname[]" value="{{$player=>fname}}" />
    <input type="text" name="player_lname[]" value="{{$player=lname}}" />
    </li>