2011-09-17 10 views
0

私はWebアプリケーションを開発していますが、いくつかの小さな問題にぶつかります。私はCodeIgniterを使用しています。Submit Button、CodeIgniterでPHPを実行

データベースとは異なる2つの異なる機能を実行する2つのボタンが必要です。私はこれらの機能を適切なコントローラファイルに作成しました。

ボタンをそれぞれの機能を実行させる最善の方法は何ですか? javascriptが必要な場合は、私はここで少し混乱しているので、何の問題もなく、ちょっとしたポインタが必要です!

答えて

1

データベースのレコードを変更している場合は、それらをフォームの一部(または2つ)として実装する必要があります。潜在的に破壊的なアクションは、単純なGETリクエストを使用するだけでは実行できません。

フォームには、コントローラーの内容を指定するための非表示の入力タイプを含めることができます。

HTMLページ:

​​

コントローラー:

function myfunction() 
{ 
    // Your form would be submitted to this method... 
    // Get action from submitted form ('one' or 'two') 
    $action = $this->input->post('action'); 
    // Decide what to do 
    switch ($action) 
    { 
     case 'one': $this->my_first_action(); break; 
     case 'two': $this->my_second_action(); break; 
    } 
} 

function my_first_action() 
{ 
    // Do stuff... 
} 

フォームが送信された後、別のページにリダイレクトすることをお勧めだろう - 'Post/Redirect/Get' パターンを使用。

+0

これは間違いなく私が探しているものです。問題は今、私のコントローラで定義された関数であっても、フォームアクション= ""で正しく呼び出されていても、404エラーが出ます。 –

+0

フォームのアクションタグに完全なURLを入力する必要があるようです。 URLヘルパー(例:<?php echo site_url( 'controller/method')?>)またはフォームヘルパー(<?php echo form_open( 'controller/method')?>)を使用します。 また、メソッドがPOSTに設定されていることを確認してください。 –

関連する問題