2015-03-03 67 views
0

我們將使用PHP中的CodeIgniter將文本框的值保存到數據庫中。將輸入類型文本中的一組數據保存到數據庫

查看

echo form_open('site/addprice'); 
foreach($query5 as $row5){ 
    echo '<input type="text" name="artname"value = "'.$row5->articleName.'" style="background-color: #EDEDED; border: 0px;" readonly/>'; 
    echo '<input type="text" name="supId" value = "'.$row1->supplierId.'" style="display: none; background-color: #EDEDED; border: 0px;" readonly/>'; 
    echo '&nbsp'; 
    echo '&nbsp'; 
    echo '&nbsp'; 
    echo '&nbsp'; 
    echo '&nbsp'; 
    echo "<input type='text' name='price[]' />"; 
    echo '<br />'; 
    echo '<br />'; 
} 
$r++; 
echo '<input type="submit" style="margin-left: 210px;" class="but" placeholder="Enter proposed price" required/>'; 
echo form_close(); 
echo '</div>'; 

控制器

function addprice(){ 
    $this->load->model('site_model'); 
    $this->site_model->addprice(); 
} 

型號

但是,我們的代碼仍然是尚未完成。

function addprice(){ 
    $item = $this->input->post('artname'); 
    $query = $this->db->query("SELECT itemId FROM items WHERE articleName = '$item'"); 
    $res = $query->result(); 
    $row = $res[0]; 
    $supId = $this->input->post('supId'); 
    $sql = "UPDATE bac_bs SET price='' WHERE supplierId = '$supId' "; 
} 

即時幫助將不勝感激。

+0

爲什麼你有'$ row1-> supplierId'其中是$ row1'定義? – CodeGodie 2015-03-03 02:52:59

+0

'$ r'未定義,'$ r ++'位於'foreach'循環之外。那是對的嗎? – CodeGodie 2015-03-03 02:56:01

+0

您的發佈數據應該在控制器中處理,然後傳遞給模型。 – CodeGodie 2015-03-03 02:58:13

回答

0

我一直在等待你對我的評論的答案,但看起來你不在那裏。無論如何,我假設你的$query5是一個包含數據的多維數組。因此每個值的關鍵字都應該足以設置你的數組。這是我會怎樣構建你的視圖

<div> 
    <?= form_open('site/addprice') ?> 
    <?php foreach ($query5 as $key => $row5) { ?> 
     <input type="text" name="bac_bs_info[<?= $key ?>][artname]" value="<?= $row5->articleName ?>" style="background-color: #EDEDED; border: 0px;" readonly/> 
     <input type="text" name="bac_bs_info[<?= $key ?>][supId]" value="<?= $row1->supplierId ?>" style="display: none; background-color: #EDEDED; border: 0px;" readonly/> 
     &nbsp &nbsp &nbsp &nbsp &nbsp 
     <input type='text' name='bac_bs_info[<?= $key ?>][price]'/> 
     <br /><br /> 
    <?php } ?> 
    <input type="submit" style="margin-left: 210px;" class="but" placeholder="Enter proposed price" required/>'; 
    <?= form_close() ?> 
</div> 

控制器現在可以接收陣列形式的這些信息,你可以遍歷並傳送給你的模型像這樣:

function addprice() { 
    $this->load->model('site_model'); 
    $bac_bs_info_arr = $this->input->post('bac_bs_info'); 
    foreach ($bac_bs_info_arr as $data) { 
     $this->site_model->model_addprice($data); 
    } 
} 

最後你的模型可以更容易地處理這些信息..雖然我們沒有足夠的信息來幫助你建立你的模型,但給你一個粗略的想法,這是我將如何分解它:

function model_addprice($data) { 
    $itemInfo = $this->getItemInfoByName($data['artname']); //dont know your plans for this query 
    $this->updateBacbsBySupId($data['supId']); 
} 

function getItemInfoByName($artName) { 
    $this->db->select('*'); 
    $this->db->from('items'); 
    $this->db->where('articleName', $artName); 
    $query = $this->db->get(); 
    return $query->row(); 
} 

function updateBacbsBySupId($supId) { 
    $data = array(
     'price' => ''//left it blank since you did not specify what information should go here 
    ); 

    $this->db->where('supplierId', $supId); 
    $this->db->update('bac_bs', $data); 
}