当使用Codeigniter将数组插入mysql时,如何使用for-each循环? [英] How to use for-each loop when inserting arrays into mysql using Codeigniter?

查看:156
本文介绍了当使用Codeigniter将数组插入mysql时,如何使用for-each循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图添加dtnamic fileds和通过插入数组数据到mysql,但当我尝试这个代码没有错误和ref不只插入可以任何人帮助我。 im使用Codeigniter框架。



这是我的视图页面:我的表单与js

 < div id =invoice_form> 
<?php echo form_open(base_url()。'sample / myinvoice'); >
< div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?>< / div>
< div id =description>< p id =add_field>添加说明< / p>< / div>
< input id =btn_addname =btn_addtype =submitclass =btn btn-primaryvalue =Save/>
<?php echo form_close(); >
< / div>

这是我的控制器:

  function myinvoice()
{
$ this-> load-> library('form_validation');

$ this-> form_validation-> set_rules('ref','REFERENCE NO','trim');
$ this-> form_validation-> set_rules('description','DESCRIPTIONS','trim');
$ this-> form_validation-> set_rules('voucher_no','DESCRIPTIONS','trim');
$ this-> form_validation-> set_rules('price','DESCRIPTIONS','trim');

if($ this-> form_validation-> run())
{
$ this-> load-> database
$ this-> load-> model('sample_model');

$ ref = $ this-> input-> post('ref');
$ description = $ this-> input-> post('description');
$ voucher_no = $ this-> input-> post('voucher_no');
$ price = $ this-> input-> post('price');
$ i = 0;
if($ description){
foreach($ description as $ row){
$ data ['ref_no'] = $ ref [$ i];
$ data ['descriptions'] = $ description [$ i];
$ data ['voucher'] = $ voucher_no [$ i];
$ data ['value'] = $ price [$ i];
$ this-> db-> insert(description,$ data);
$ i ++; }}
} else {
echoform validation error;}}


解决方案

这是我希望这将有助于许多人的答案:)



这是我的视图页:

 < div id =invoice_form> 
<?php echo form_open(base_url()。'sample / myinvoice'); >
< div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?>< / div>
< div id =description>< p id =add_field>添加说明< / p>< / div>
< input id =btn_addname =btn_addtype =submitclass =btn btn-primaryvalue =Save/>
<?php echo form_close(); >
< / div>
< script>
var count = 0;
$(document).ready(function(){
$('p#add_field')click(function(){
count + = 1;
var html = '< strong>说明'+ count +'< / strong>'+'< input id =description'+ count +'name =description []'+'type =text/> '+'< input id =description'+ count +'name =voucher_no []'+'type =text/> name =price []'+'type =text/>< br />';
$('#description')append(html);});
});
< / script>





这是我的控制器: / p>

  function myinvoice()
{
$ this-> load-> library('form_validation' );

$ this-> form_validation-> set_rules('ref','REFERENCE NO','trim');
$ this-> form_validation-> set_rules('description []','DESCRIPTIONS','trim');
$ this-> form_validation-> set_rules('voucher_no []','DESCRIPTIONS','trim');
$ this-> form_validation-> set_rules('price []','DESCRIPTIONS','trim');

if($ this-> form_validation-> run())
{
$ this-> load-> database
$ this-> load-> model('sample_model');

$ ref = $ this-> input-> post('ref');
$ description = $ this-> input-> post('description');
$ voucher_no = $ this-> input-> post('voucher_no');
$ price = $ this-> input-> post('price');
$ i = 0;
if($ description){
foreach($ description as $ row)
{
$ data ['ref_no'] = $ ref;
$ data ['descriptions'] = $ description [$ i];
$ data ['voucher'] = $ voucher_no [$ i];
$ data ['value'] = $ price [$ i];
$ this-> db-> insert(description,$ data);
$ i ++;
}}
} else {
print_r(validation_errors());
}}


Im trying to add dtnamic fileds and through that insert arrays data into mysql but when i try this code nothing error and ref no only inserting can anyone help me . im using Codeigniter framework.

This is my view page : my form with js

<div id="invoice_form">
        <?php echo form_open(base_url().'sample/myinvoice'); ?>
        <div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?></div>
            <div  id="description"><p id="add_field">ADD DESCRIPTION</p></div>
        <input id="btn_add" name="btn_add" type="submit" class="btn btn-primary" value="Save" />
        <?php echo form_close(); ?>
        </div>

This is my Controller :

function myinvoice()
    {
        $this->load->library('form_validation');

        $this->form_validation->set_rules('ref', 'REFERENCE NO', 'trim');
        $this->form_validation->set_rules('description', 'DESCRIPTIONS', 'trim'); 
        $this->form_validation->set_rules('voucher_no', 'DESCRIPTIONS', 'trim'); 
        $this->form_validation->set_rules('price', 'DESCRIPTIONS', 'trim'); 

        if($this->form_validation->run())
        {
            $this->load->database();
            $this->load->model('sample_model');

            $ref =  $this->input->post('ref');
            $description = $this->input->post('description');
            $voucher_no = $this->input->post('voucher_no');
            $price = $this->input->post('price');
             $i = 0;
             if($description){
            foreach($description as $row){
            $data['ref_no'] = $ref[$i];
            $data['descriptions'] = $description[$i];
            $data['voucher'] = $voucher_no[$i];
            $data['value'] = $price[$i];
             $this->db->insert("description",$data);
            $i++; }}
        }else{
            echo "form validation error";}}

解决方案

This is the answer i hope this will help to many people :)

This is my view Page:

    <div id="invoice_form">
    <?php echo form_open(base_url().'sample/myinvoice'); ?>
    <div><?php echo form_input(array('id'=>'ref','name'=>'ref'));?></div>
    <div  id="description"><p id="add_field">ADD DESCRIPTION</p></div>
    <input id="btn_add" name="btn_add" type="submit" class="btn btn-primary" value="Save" />
    <?php echo form_close(); ?>
    </div>
    <script>
    var count = 0;
    $(document).ready(function() {
    $('p#add_field').click(function(){
       count += 1;
       var html='<strong>Description  '+ count +'</strong>'+'<input id="description'+ count +'"name="description[]'+'" type="text" />'+'<input id="description'+ count +'"name="voucher_no[]'+'" type="text" />'+'<input id="description'+ count +'"name="price[]'+'" type="text" /><br />';
       $('#description').append(html); });
       });
    </script>

This is My Controller :

function myinvoice()
    {
        $this->load->library('form_validation');

        $this->form_validation->set_rules('ref', 'REFERENCE NO', 'trim');
        $this->form_validation->set_rules('description[]', 'DESCRIPTIONS', 'trim'); 
        $this->form_validation->set_rules('voucher_no[]', 'DESCRIPTIONS', 'trim'); 
        $this->form_validation->set_rules('price[]', 'DESCRIPTIONS', 'trim'); 

        if($this->form_validation->run())
        {
            $this->load->database();
            $this->load->model('sample_model');

            $ref =  $this->input->post('ref');
            $description = $this->input->post('description');
            $voucher_no = $this->input->post('voucher_no');
            $price = $this->input->post('price');
             $i = 0;
             if($description){
            foreach($description as $row)
            {
            $data['ref_no'] = $ref;
            $data['descriptions'] = $description[$i];
            $data['voucher'] = $voucher_no[$i];
            $data['value'] = $price[$i];
             $this->db->insert("description",$data);
            $i++;
            }}
            }else{
            print_r(validation_errors());
            }}

这篇关于当使用Codeigniter将数组插入mysql时,如何使用for-each循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆