简体   繁体   English

使用从表单将相同的变量名称输入从多个数据更新到Laravel数据库的单个列中

[英]Update multiple data using same variable name input from a form into single column in database in Laravel

hye everyone. 大家好

Im newbies in laravel here. 我是拉拉韦尔的新手。

From my form, both variable name : sequenceJawatankuasa and seniorityJawatankuasa supposed to pass array value to controller. 在我的表单中,两个变量名: sequenceJawatankuasaseniorityJawatankuasa应该将数组值传递给控制器​​。 This is because, I want to update many different input data for both fields which is Sequence and Seniority using different ID after clicked button Simpan Turutan 这是因为,在单击Simpan Turutan按钮后,我想使用不同的ID更新两个字段的许多不同输入数据,即“ Sequence和“ Seniority

Then it will pass parameter consists of ID , SequenceJawatankuasa value, and seniorityJawatankuasa value to class yet its model. 然后它将由IDSequenceJawatankuasa值和seniorityJawatankuasa值组成的参数传递给其模型。
But there's stil error and not update the value.Please anyone help me. 但是仍然存在错误并且没有更新值。请有人帮助我。

here is my Form: 这是我的表格:

<?php $count = 1; ?>
    @foreach ($jawatankuasa as $jawatankuasaListView)   
    <tr height="20" valign="top">
        <td class="TableCol1Center">{{ $jawatankuasaListView['ID'] }}</td>
        <td class="TableCol2Left"><a href="{{URL::to('pentadbiranjawatankuasadetails/sujk?t=2&jawatankuasaid='.$jawatankuasaListView['ID'].'&bc=1')}}" class="BlueLink">{{ $jawatankuasaListView['NAMA_JAWATANKUASA'] }}</a></td>
        <td class="TableCol2Left"> {{ $jawatankuasaListView['PENERANGAN'] }}</td>
        <td class="TableCol2Center">
            <input type="text" name="seniorityJawatankuasa[]" style="text-align: center;" maxlength="2" size="1" value="{{ $jawatankuasaListView['SENIORITY'] }}" onchange="javascript:FilterChar4(this)">
        </td>
        <td class="TableCol2Center">
            <input type="text" name="sequenceJawatankuasa[]" style="text-align: center;" maxlength="2" size="1" value="{{ $jawatankuasaListView['SEQUENCE'] }}" onchange="javascript:FilterChar4(this)">
        </td>
        <td class="TableCol2Center">
            {{ strcmp( $jawatankuasaListView['SOFT_DELETE'], SOFT_DELETE ) == 0 ? '<b><font color="red">Tidak Aktif</font></b>' : '<b>Aktif</b>' }}</td>                            
        </td>                           
        <td class="TableCol3Center">
            @if( strcmp( $jawatankuasaListView['SOFT_DELETE'], SOFT_DELETE ) != 0 )
                <input type="checkbox" name="DelPstId[]" value="{{ $jawatankuasaListView['ID'] }}">
            @endif
        </td>
    </tr>
<?php $count++; ?>
@endforeach
    <tr height="20">
        <td align="right">
            <input type="button" name="btnSave" value="Simpan Turutan" class="NormalTextCenter" onclick="SimpanTurutan();" >
        </td>
    </tr> <br/>

Javascript : Javascript:

function FilterChar4(field) {
    var vResult = new String();
    var vNum = "0123456789.";
    var vChar = field.value.split(""); // create array
    for (i=0; i<vChar.length; i++) {
       if (vNum.indexOf(vChar[i]) != -1) vResult += vChar[i];
    }
    if (field.value != vResult) field.value = vResult; 
}
function SimpanTurutan(){
    if (confirm("Simpan turutan ini?")) {       
        ShowLoading("Loading");
        var url = "{{ URL::to('pentadbiranjawatankuasaupdateturutan/sujk?t=2') }}" ;
        document.JawatankuasaListForm.action = url;
        document.JawatankuasaListForm.submit();
        return true;
    }
}


Controller: 控制器:

public function pentadbiranJawatankuasaUpdateTurutan()
{           
    $kodJawatankuasaClass = new KodJawatankuasaClass();
    try{

        $input = Input::all();  

        #update process
        if(( isset( $input['jawatankuasaid'])) && ( isset( $input['seniorityJawatankuasa'])) && ( isset( $input['sequenceJawatankuasa'])) ){
            $updateTurutan = $kodJawatankuasaClass->getJawatankuasaUpdateTurutanByID( $input['jawatankuasaid'], $input['seniorityJawatankuasa'], $input['sequenceJawatankuasa'] );
        }

        #declaration pagination
        $pagination = new PaginationBase();

        #get page no
        $pageNo = empty( $_GET['pageNo'] ) ? 0 : $_GET['pageNo'];
        $pagination->setPageSize();

        #count and get data
        $jawatankuasa_count = $kodJawatankuasaClass->getJawatankuasaKodPagination($pagination->getPageSize(), $pageNo, true ); 
        $jawatankuasa= $kodJawatankuasaClass->getJawatankuasaKodPagination( $pagination->getPageSize(), $pageNo );

        #pagination setting
        $pagination->setPageDataSize( $jawatankuasa_count );
        $pagination->setCurrentPage( $pageNo );

        return View::make('sujk/pentadbiran/jawatankuasa/jawatankuasa-view-sujk', array( 'jawatankuasa' => $jawatankuasa, 'pagination' => $pagination ));
    }
    catch (Exception $e) {
        loginfo(ERROR_LOG, $e);
    }
} 
<br/> </br>

Class: 类:

public function getJawatankuasaUpdateTurutanByID($id, $seniority, $sequence){ 
        $kodJawatankuasa = new KodJawatankuasa();
        try{
            $kodJawatankuasa->getJawatankuasaUpdateTurutanByID($id, $seniority, $sequence);     
        }catch(Exception $exception){
            loginfo(ERROR_LOG, $exception);
        }
        return false;
    }


Model: 模型:

public function getJawatankuasaUpdateTurutanByID( $id, $seniority, $sequence )
{
    try{
        $this->whereIn('ID', $id)
             ->update(['SENIORITY' => $seniority['seniorityJawatankuasa'], 'SEQUENCE' => $sequence['sequenceJawatankuasa']]); 

    }catch(ModelNotFoundException $exception){
        loginfo( ERROR_LOG, $exception );
    }
}

change the input names in the form like so 像这样更改输入名称

<input name"staff[<?php echo $i; ?>][id]"> type="hidden">
<input name="staff[<?php echo $i; ?>][SENIORITY]">
<input name="staff[<?php echo $i; ?>][SEQUENCE]">

and then in the controller you can do something like: 然后在控制器中您可以执行以下操作:

<?php
$staffs = Input::all();
foreach($staffs as $staff) {
  $staff = Staff::find($staff['id'])->update($staff);
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在表的同一列的多行中从单一格式插入相同名称的多个数据 - How to insert multiple data of same name from single form in multiple row of same column of table 在 laravel 中从名称为 id 和名称为名称的输入表单进行多次更新 - multiple update in laravel from input form with name as id and name as names 如何使用一个foreach从索引数组文本输入名称PHP将数据插入多列数据库? - How to insert data to multiple column database from indexed array text input name PHP using one foreach? 如何从具有多行多行的单个表单中插入多个同名数据 - How to insert multiple data of the same name from single form with multiple row of multiple form 如何在数据库中更新同名多个数据? - How to update same name multiple data in database? 使用来自表单的输入作为变量从MySQL数据库检索数据 - Using input from form as a variable to retrieve data from a MySQL database 更新多个数据 <select><option>在数据库中使用laravel 5.1 - Update multiple data from <select> <option> in database using laravel 5.1 从具有相同名称的多个输入的表单中请求数据 - Request data from form with multiple inputs using the same name 使用单个变量中的更新查询将复选框值从表单更新到数据库(已概括) - update checkbox value from the form to database(seralized) using update query in single variable 想要从laravel 5.3中的数据库获取数据作为单个值,但它以列名返回 - Want to get data from database in laravel 5.3 as single values but it return with column name
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM