Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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
Javascript 将JS数组提交给雄辩的控制器_Javascript_Php_Mysql_Laravel - Fatal编程技术网

Javascript 将JS数组提交给雄辩的控制器

Javascript 将JS数组提交给雄辩的控制器,javascript,php,mysql,laravel,Javascript,Php,Mysql,Laravel,我发现很难找到关于如何构建有说服力的函数将数据存储到MySQL数据库的文档 目前,我可以通过从表单字段获取值,将变量引入MySQL数据库: $new_character->character_name = request('characterName'); characterName是表单字段的ID 但是我有一些变量,我想把它们放到一个新的DB行中。我该怎么做 我尝试使用jquery将数组分配给表单: <input type="text" class="form-control"

我发现很难找到关于如何构建有说服力的函数将数据存储到MySQL数据库的文档

目前,我可以通过从表单字段获取值,将变量引入MySQL数据库:

$new_character->character_name = request('characterName');
characterName是表单字段的ID

但是我有一些变量,我想把它们放到一个新的DB行中。我该怎么做

我尝试使用jquery将数组分配给表单:

<input type="text" class="form-control" id="skillsField">
skillsVar = skillsList.toString(); // skillsVar is an array of strings
$('#skillsField').val(skillsVar);
但这只会导致将null提交给DB

非常感谢您对这个问题的帮助,让我看一篇文档,它简单地解释了Laravel中的DB CRUD,更是如此

型号和控制器:

视图:

视图很长,相关代码行有: 502-503:我试图用来保存变量的表单
559-581:单击按钮时运行的JS代码,它将所有勾选的复选框值放入一个数组,将其转换为字符串并将其分配给变量。

尝试将输入更改为:

<input type="text" class="form-control" name="skillsField" id="skillsField">

查看您的代码,您的模型本身看起来不完整,缺少表结构和定义

我在下面根据您的视图和控制器做出了一些假设,以确定模型的外观

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Character extends Model
{

    protected $table = 'characters'

    public $timestamps = false;

    protected $fillable = [
        'player_id',
        'campaign_id',
        'character_name',
        'Race',
        'Class',
        'Level',
        'Strength',
        'Dexterity',
        'Constitution',
        'Intelligence',
        'Wisdom',
        'Charisma',
        'Proficiency',
        'Trained_Skills',
        'Languages',
        'Hit_Die',
        'HP'
    ];

    // If you have a specific id field as a primary key use this:
    protected $guarded = ['id'];

    public static function userChars()
    {
        return static::where('player_id', '=', \Auth::user()->id)->get();
    }

}

如何填充“skillsList”-这是通过用户输入在客户端填充的还是在Javascript中设置的?从一开始它看起来像skillsList,随后skillsVar可能是空的,因此将其传递给控制器可能是您的问题。此外,假设$new_character是对已创建的实际角色模型的引用,那么您的流程应该可以工作,并且经过培训的_技能是db和模型中的实际列。一个简单而好的起点应该可以帮助你:@MatthewFritz它填充了客户端:用户单击复选框,JS函数循环遍历所有复选框,获取选中的值并将它们放入数组中。在提交表单之前,我使用console.log()查看skillsList,它工作正常。谢谢你的链接!您能否共享您的模型、视图和控制器代码?将有助于为您提供正确的答案。@MatthewFritz DoneNo joy,仍然为空。谢谢你!谢谢你的帮助!我发现了问题所在:我用来插入值的两个字段在表单div之外,因此没有通过提交按钮提交。我在做你建议的更改时发现了这一点,谢谢@RuairiMcNicholas-没问题。很高兴你发现了这个问题。像这样的小事真的会让人沮丧。
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Character extends Model
{

    protected $table = 'characters'

    public $timestamps = false;

    protected $fillable = [
        'player_id',
        'campaign_id',
        'character_name',
        'Race',
        'Class',
        'Level',
        'Strength',
        'Dexterity',
        'Constitution',
        'Intelligence',
        'Wisdom',
        'Charisma',
        'Proficiency',
        'Trained_Skills',
        'Languages',
        'Hit_Die',
        'HP'
    ];

    // If you have a specific id field as a primary key use this:
    protected $guarded = ['id'];

    public static function userChars()
    {
        return static::where('player_id', '=', \Auth::user()->id)->get();
    }

}
<input type="text" class="form-control" id="skillsField" name="skillsField">
<input type="text" class="form-control" id="languagesField" name="languagesField">