Как передать поля формы HTML в виде массива в базу данных в CodeIgniter с помощью JQuery - PullRequest
0 голосов
/ 07 октября 2018

это моя страница просмотра:

<form role="form" id="addNewMatter" action="<?php echo base_url() ?>saveNewSupplier" 
method="post">

<input type="text" value="" name="name" id="name" />
<input type="text" value="" name="phone" id="phone" />
<input type="text" value="" name="email" id="email" />
<input type="text" value="" name="address" id="address" />

<script>
   $('form').change(function() {
       var input = $('form').serializeArray();
       var data = "";
       $( "#formdata" ).empty();
       jQuery.each( input, function( i, input1 ) {
        if($(this).attr("name") !== 'formdata'){
         data += "\"" + $(this).attr("name") + "\"=>" +  "\"" + input1.value +  "\",";
        }
           finaldata = data.replace(/,\s*$/, "");
           $( "#formdata" ).val( finaldata );
           //alert($(this).attr('name'));
        });
    });
</script>

<input type="text" value="" name="formdata" id="formdata" />
</form>

и это страница моего контроллера:

function saveNewSupplier()
{

    $createdby= $this->vendorId;
    $createddate= date('d M Y');

            $formdata = $this->input->post('formdata');
$Info = array();
    $Info = array($formdata, 'createdby'=>$createdby,
   'createddate'=>$createddate);
$this->load->model('user_model');
$result = $this->user_model->saveNewSupplier($Info);
}

и это моя страница модели:

function saveNewSupplier($Info)
{
    $this->db->trans_start();
    $this->db->insert('tbl_suppliers1', $Info);

    $insert_id = $this->db->insert_id();

    $this->db->trans_complete();

    return $insert_id;
}

запрос вставки не работает, он показывает 0 как первый столбец в массиве, но это должен быть массив, который я передал из представления методом post.Пожалуйста, помогите мне исправить этот запрос вставки.спасибо.

1 Ответ

0 голосов
/ 07 октября 2018

$this->input->post() предоставит вам поля формы в виде массива, так что вы можете сделать это без использования JavaScript.

Если в вашей таблице tbl_suppliers1 есть столбцы "formdata", "madeby", "createdate":

function saveNewSupplier()
{
    $createdby = $this->vendorId;
    $createddate = date('d M Y');

    $form = $this->input->post();
    $data = array(
        json_encode($form),
        'createdby' => $createdby,
        'createddate' => $createddate
    );
    $this->load->model('user_model');
    $result = $this->user_model->saveNewSupplier($data);
}

Если в вашем tbl_supplier есть столбцы" имя "," телефон ", (и т. Д.)," Createdate ":

function saveNewSupplier()
{
    $createdby = $this->vendorId;
    $createddate = date('d M Y');

    $form = $this->input->post();
    $data = $form;
    $data['createdby'] = $createdby;
    $data['createddate'] = $createddate;
    $this->load->model('user_model');
    $result = $this->user_model->saveNewSupplier($data);
}

Не забывайте ни о методе сценарияили приведенные выше примеры проверяют правильность полей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...