2015-01-05 4 views
0

동일한 입력이 여러 개있는 경우에도 처음 lot.I을 작성하는 대신 데이터베이스에 삽입 할 수 있기를 원합니다.하지만 행운을 빕니다. 내 프레임 워크에 codeigniter를 사용한다.같은 입력에서 여러 개의 데이터 삽입?

동일한 입력을 여러 개 가질 수는 있지만 테이블에 대해 새 행을 만드는 방법은 무엇입니까?

모두 동일한 배너 ID를 유지해야합니다.

질문 ON YOU DOWN 투표는 설명해 경우 왜 건배

모델

public function add_banners_image($banner_id = 0) { 

$data = array(
'banner_id' => $banner_id, 
'link' => $this->input->post('link'), 
); 

$this->db->set($data); 
$this->db->insert_id(); 
$this->db->insert($this->db->dbprefix . 'banner_image'); 

//return $this->db->insert_id(); 

} 

컨트롤러

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Banner_add extends Admin_Controller { 

public function __construct() { 
parent::__construct(); 
$this->load->model('admin/design/model_add_banners'); 
} 

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

$this->form_validation->set_rules('name', 'Banner Name'); 
$this->form_validation->set_rules('status', 'Banner Status'); 

if ($this->form_validation->run($this) == FALSE) { 

return $this->load->view('design/banner_form.tpl', $data); 

} else { 

$banner_id = $this->model_add_banners->add_banners(); 

$banner_image_id = $this->model_add_banners->add_banners_image($banner_id); 

$this->model_add_banners->admin_banners_banner_image_description($banner_image_id, $banner_id); 

redirect('admin/design/banners'); 

} 

} 

} 

보기

<?php echo Modules::run('admin/common/header/index');?><?php echo Modules::run('admin/common/column_left/index');?> 

<div class="row"> 
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 

<?php echo $this->load->view('flashdata/flashdata.tpl');?> 
<?php echo validation_errors('<div class="alert alert-danger">', '</div>'); ?> 
<?php echo form_open_multipart('admin/design/banners/add', array('id' => 'banner_add', 'class' => 'form-horizontal'));?> 

<div class="form-group"> 
<label class="col-sm-2 control-label" for="input-banner-name">Banner Name</label> 
<div class="col-sm-10"> 
<input type="text" name="name" value="" placeholder="Banner Name" id="input-banner-name" class="form-control" /> 
</div> 
</div> 

<div class="form-group"> 
<label class="col-sm-2 control-label" for="input-status">Banner Status</label> 
<div class="col-sm-10"> 
<select name="status" id="input-status" class="form-control"> 
<option value="1">Enable</option> 
<option value="0">Disabled</option> 
</select> 
</div> 
</div> 

<table id="banners" class="table table-striped table-bordered table-hover"> 
<thead> 
<tr> 
<td class="text-center">Title</td> 
<td class="text-center">Url Link</td> 
</tr> 
</thead> 
<tbody> 

<tr> 
    <td> 
    <input type="text" name="title" value="" placeholder="Banner Title" id="" class="form-control" /> 
    </td> 
    <td> 
    <input type="text" name="link" value="" placeholder="Banner Link" id="" class="form-control" /> 
    </td> 
</tr> 

<tr> 
    <td> 
    <input type="text" name="title" value="" placeholder="Banner Title" id="" class="form-control" /> 
    </td> 
    <td> 
    <input type="text" name="link" value="" placeholder="Banner Link" id="" class="form-control" /> 
    </td> 
</tr> 

</tbody> 
</table> 
<?php echo form_close();?> 

</div> 
</div> 

<?php echo Modules::run('admin/common/footer/index');?> 
+2

: 여기

public function add_banners_image($banner_id = 0) { $links = $this->input->post('link'); foreach ($links as $link) { $data = array( 'banner_id' => $banner_id, 'link' => $link, ); $this->db->set($data); $this->db->insert_id(); $this->db->insert($this->db->dbprefix . 'banner_image'); //return $this->db->insert_id(); } } 

CodeIgniter의에서 "POST"수신 처리 배열 값을 참조입니다 : 여기에 귀하의 모델 변경된 코드는 : title [] and link [] - 이것은 루프를 돌릴 수있는 배열처럼 보이게 할 것입니다. – PHPology

+0

시간 내 주셔서 감사합니다. 행운을 빕니다. – user4419336

+0

왜이 질문에 투표를 하시겠습니까? – user4419336

답변

0

우선, 당신은 title[]link[]에 제목과 링크의 이름 속성을 변경해야합니다. 이렇게하면 양식 제출시 동일한 이름의 여러 값을 보낼 수 있습니다.

그런 다음 모든 값을 개별적으로 읽고 그에 따라 처리해야합니다. 난 당신이 이런 식으로 제목과 링크의 이름을 제안 Getting data from post array in CodeIgniter

+0

감사합니다. – user4419336

+0

나는 그것이 당신의 문제를 해결했기 때문에 기쁩니다. 건배 :) –

관련 문제