2013-08-05 24 views
0

我如何更新/編輯我的行的更新版本。我們可以在那裏輸入要更新的行,而不是使頁面查看所有行並建立到另一個頁面的鏈接。我已經制定了這個。說明我的更新技術和可能的更簡單的方法

<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>Crud Functions - Bookshelf</title> 
    <link rel="stylesheet" href="css/style.css" type="text/css"> 
</head> 
<body> 
    <div class="header"> 
     <div> 

     </div> 
    </div> 
    <div class="body"> 
     <div> 
      <div> 
       <div> 
        <div class="programs"> 
         <h2>Book Options:</h2> 
         <div class="first"> 
          <ul> 
           <li class="selected"> 
            <a href="showbooks">View Books</a> 
           </li> 
           <li> 
            <a href="showinsert">Add Book</a> 
           </li> 
           <li> 
            <a href="showupdate">Update Book</a> 
           </li> 
           <li> 
            <a href="showdelete">Delete Book</a> 
           </li> 
          </ul> 
         </div> 
         <div> 

<?php echo form_open('bookstore/update'); ?> 
<table cellpadding='5'> 

<th>Update</th> 
<th>Book ID</th> 
<th>Title</th> 
<th>Author</th> 
<th>Released Year</th> 
<th>ISBN</th> 

<?php 

if(isset($books)) : foreach($books as $book) : 
?>  
     <tr> 
     <td><input type="submit" name="idtoupdate" value="<?=$book['book_id']?>"/></td> 
     <td><?php echo $book['book_id'] ?></td> 
     <td><input type="text" name="bkname" value="<?php echo $book['book_name'] ?>"/></td> 
     <td><input type="text" name="bkauthor" value="<?php echo $book['book_author'] ?>"/></td> 
     <td><input type="text" name="bkyear" value="<?php echo $book['book_year'] ?>"/></td> 
     <td><input type="text" name="bkisbn" value="<?php echo $book['book_isbn'] ?>"/></td> 
     </tr> 
<?php 
    endforeach; 
?> 
<?php 
else : 
?> 
<h5>No records</h5> 
<?php 
endif; 
?> 
</table> 
<?php echo form_close();?> 


         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 

</body> 
</html> 

到目前爲止它的工作原理。雖然我不知道我是否可以同時更新多行或需要更多編碼。但生病的嘗試,這是我學習嘗試尋找更好,更快的做事方式的一種方式。

+0

兄弟! :( –

+0

怎麼回事?有什麼不對嗎?你可以指出來,所以我可以練習正確的編碼方式 我看到了,問題是我用文本框,而不是提交按鈕,我用鏈接..雖然我可以只需在鏈接右側放置一個提交按鈕? 或者我可以使用表單。稍後修改它..即時通訊仍然在等待更多的澄清..林總是渴望向專業人士學習:) –

+0

不使用base_url準備鏈接讓CI用你的<?php回聲錨('控制器/函數名/')。 $ param_here,'顯示文字'); ?> – Nishanthan

回答

0

通過問自己爲什麼使用框架開始。我用它來緩解一切,並利用documentationpractices。一旦你意識到框架的重點,你將學會更好地使用它。混合HTML藏漢時

<? if (TRUE) { ?> 
Print this 
<? } ?> 

更多可讀性:

在HTML中,可以考慮使用:

<? if (TRUE): ?> 
Print this 
<? endif; ?> 

不是。

相反的:

$name = $this->input->xss_clean($this->input->post('bkname')); 

使用:

$name = $this->input->post('bkname', TRUE); 

It's the same effect


這就是說,試着簡單地製作簡單而合乎邏輯的代碼。總是調整你的風格和方法,你知道/認爲會更簡單和合乎邏輯。如果您不喜歡某部分代碼,請嘗試重新構建它並比較差異。

CodeIgniter經過MVC principle。它意味着將視覺效果,命令和常見操作分解爲代碼的不同部分。不要在視圖文件中獲取數據,避免在控制器中回顯html。

+0

感謝您的建議,我已經理解MVC的概念。模型視圖控制器。 事情是,我是一個大學生,我從簡單的程序編程風格..到使用OOP,然後到MVC。每個sembreak或夏天我不練習編碼,我總是最終忘記了大部分的語法,爲什麼我總是問,即時通訊是否正確。儘管現在事情已經改變。即時通訊今年畢業,所以我盡我所能,以最大限度地提高我的學習習慣。 我謹記這一點。 –

+0

請問使用:雖然? 它是否消除了在每個函數中使用{}? –

+0

我已更新我的代碼,不適當更新我的上述帖子..請告訴我,如果我正確地做代碼..因爲有時候有適當的方式做它和不正確的方式,我想練習編碼的正確方法 –

0

你讓自己變得太難了。使用表單助手,甚至不會打擾在URL中傳遞書籍ID(不是最佳實踐,因爲如果你這樣做,你可以在技術上編寫腳本來覆蓋數據庫中的每本書)

你想要爲每個tr創建一個表單,將book_id作爲隱藏的表單變量傳遞,然後在控制器中處理它。

HTML摘錄

<?php echo form_open('index.php/bookstore/update/'); ?> 
<tr> 
<td><?php echo $book['book_id']; echo form_hidden('book_id', $book['book_id']; ?></td> 
<td><input type="text" name="bkname" value="<?php echo $book['book_name'] ?>"/></td> 
<td><input type="text" name="bkauthor" value="<?php echo $book['book_author'] ?>"/></td> 
<td><input type="text" name="bkyear" value="<?php echo $book['book_year'] ?>"/></td> 
<td><input type="text" name="bkisbn" value="<?php echo $book['book_isbn'] ?>"/></td> 
<td><?php echo form_submit('submitMe', 'Submit') ;?></td> 
</tr> 
<?php echo form_close() ;?> 

public function update() 
{ 
    if ($this->input->post('submit'))  
    { 
    $data['book_id'] = $this->input->post('book_id',TRUE); 
    $data['name'] = $this->input->post('bkname', TRUE); 
    $data['author'] = $this->input->post('bkauthor',TRUE); 
    $data['year'] = $this->input->post('bkyear',TRUE); 
    $data['isbn'] = $this->input->post('bkisbn',TRUE); 
    //You really want to be doing some validation before running the update!!! 
    $this->posts_model->updatePost($data); 


      $this->load->view('showupdate'); 
    } 
} 

說實話,你甚至可以直接從控制器做更新通過這樣做(雖然有些人可能認爲不好的做法):沒有在正確的方向

$this->db->update('books',$data);