第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 jQuery AJAX 將數(shù)組發(fā)送到 Codeigniter

如何使用 jQuery AJAX 將數(shù)組發(fā)送到 Codeigniter

PHP
一只甜甜圈 2023-07-08 20:16:51
我有一系列學(xué)生的分?jǐn)?shù):<span>Teacher Name : </span> <input id="teacher" type="text"><span>Course Name : </span> <input id="course" type="text"><table id="students_list">    <tr>        <td><span>George</span></td>        <td><input class="mark-field" type="text" id="1105"/></td>    </tr>    <tr>        <td><span>Danny</span></td>        <td><input class="mark-field" type="text" id="1351"/></td>    </tr>    <tr>        <td><span>Linda</span></td>        <td><input class="mark-field" type="text" id="3486"/></td>    </tr>    <tr>        <td><span>Mario</span></td>        <td><input class="mark-field" type="text" id="9032"/></td>    </tr>    …</table><button id="save_marks">SAVE</button>我使用此方法使用 JQUERY 創(chuàng)建一個(gè)數(shù)組并將其發(fā)送到服務(wù)器:$(document).on('click', '#save_marks', function () {    var dataArray = [];    var i = 1;    $('.mark-field').each(function () {        dataArray[i] = {            'teacher' : $('#teacher').val(),            'course' : $('#course').val(),            'mark' : $(this).val(),            'id' : $(this).attr('id')        };        i++;    });    dataArray[0] = i;    $.ajax({        url: 'save-marks',        data: {dataset: dataArray},        type: 'post',        success: function (res) {            alert(res);        }    });});并使用這種方法將其更改為 PHP (CodeIgniter) 數(shù)組并將其保存在數(shù)據(jù)庫(kù)中:public function save_marks() {    $arrayLength = $this->input->post('data')[0];    for ($i = 1; $i < $arrayLength; $i++) {        $arr[] = array(            'TEACHERS' => $this->input->post('dataset')[$i]['teacher'],            'COURSES' => $this->input->post('dataset')[$i]['course'],            'MARKS' => $this->input->post('dataset')[$i]['mark'],            'ID' => $this->input->post('dataset')[$i]['id']        );    }    $this->db->insert_batch('marks_table', $arr);    die($this->db->affected_rows() . ' marks were saved.');}現(xiàn)在我的問(wèn)題是:還有另一種方法可以在服務(wù)器端計(jì)算數(shù)組長(zhǎng)度嗎?在服務(wù)器端和客戶端都構(gòu)建數(shù)組是一個(gè)好方法嗎?如果沒(méi)有是否有其他方法來(lái)創(chuàng)建并將它們發(fā)送到服務(wù)器?謝謝。
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

1.服務(wù)器端還有其他計(jì)算數(shù)組長(zhǎng)度的方法嗎?

是的,通過(guò)使用sizeof($array),您可以獲取數(shù)組的數(shù)組長(zhǎng)度。

2. 在服務(wù)器端和客戶端都建一個(gè)數(shù)組是不是一個(gè)好方法?

使用name="mark-field[]"您可以發(fā)送標(biāo)記列表,而無(wú)需在 JavaScript 中手動(dòng)構(gòu)建它,也可以使用sizeof($array)您在服務(wù)器端獲取數(shù)組大小,而無(wú)需從 JavaScript 發(fā)送大小。

3.是否有其他方法來(lái)創(chuàng)建并將它們發(fā)送到服務(wù)器?

就我個(gè)人而言,我會(huì)做這樣的事情:

<form id = "form_data" method="post">

<span>Teacher Name : </span> <input id="teacher" name="teacher" type="text">

<span>Course Name : </span> <input id="course" name="course" type="text">

<table id="students_list">

    <tr>

        <td><span>George</span></td>

        <td>

            <input name="mark[]" type="text" id="1105"/>

            <input name="mark_id[]" type="hidden" value="1105"/>

        </td>

    </tr>

    <tr>

        <td><span>Danny</span></td>

        <td>

            <input name="mark[]" type="text" id="1351"/>

            <input name="mark_id[]" type="hidden" value="1351"/>

        </td>

    </tr>

    <tr>

        <td><span>Linda</span></td>

        <td>

            <input name="mark[]" type="text" id="3486"/>

            <input name="mark_id[]" type="hidden" value="3486"/>

        </td>

    </tr>

</table>

<button id="save_marks">SAVE</button>

</form>

和 JavaScript 部分


$(document).on('submit', '#form_data', function (event) {

    event.preventDefault();

    var data = new FormData(this);

    $.ajax({

        //fill url with your controller name

        url:"<?php echo base_url(); ?>controllername/save_marks",

        method:"POST",

        data: data,

        async: false,

        processData: false,

        contentType: false,

        cache:false,

        dataType:"json",

        success:function(returndata)

        {

            //do something with your returned data

        },

        error: function (xhr, ajaxOptions, thrownError) {

            console.log(xhr.status);

            console.log(thrownError);

        }

    });

});

在你的控制器中:


public function save_marks() {

    $teacher= $this->input->post('teacher',true);

    $course= $this->input->post('course',true);

    //mark & mark_id is an array

    $mark= $this->input->post('mark',true);

    $mark_id= $this->input->post('mark_id',true);

    

    $arr = array();

    foreach($mark_id as $key => $row)

    {

        $arr[] = array(

            'TEACHERS' => $teacher,

            'COURSES' => $course,

            'MARKS' => $mark[$key],

            'ID' => $row

        );

    }

    

    $this->db->insert_batch('marks_table', $arr);

    //die($this->db->affected_rows() . ' marks were saved.');

    

    echo json_encode($arr);

}

通過(guò)發(fā)送 formdata,您不需要手動(dòng)構(gòu)造數(shù)組,但是由于您需要將其發(fā)送mark_id到控制器,因此您需要再添加 1 個(gè)字段來(lái)發(fā)送mark_id


查看完整回答
反對(duì) 回復(fù) 2023-07-08
  • 1 回答
  • 0 關(guān)注
  • 171 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)