0

通常の PHP では、同じページでフォームを送信できます。

<form action = "" method = "POST">
    <input type = "text" name = "hi" value = "hi"/>
    <input type = "submit" name = "send" value = "Send"/>
</form>
<?
   if (isset($_POST['send'])) 
   echo $_POST['hi'];
?>

CodeIgniter でこれを行うにはどうすればよいですか?

私はこれを試しましたが、それを行う方法がわかりません:

意見:

<? echo form_open('form'); ?>
.....
</form>
<?
if (isset($_POST['data'])){
    $array = $data;
    foreach ($array as $array){
       echo array_sum($array)/count($array)."<br>";
    }
}
?>

コントローラ:

function index() {
    $name = $this->input->post('select');
    $this->load->model('select');
    $data['result'] = $this->select->index();
    $this->load->view('theview', $data);
}
4

4 に答える 4

1

ページが更新されず、同じページに結果が表示されるように、ajax リクエストを使用してフォームを送信できます。サンプル コード :: View :

 <?php
$attributes = array('id'=>'profile-form','name'=>'personal_pro_form');
echo form_open('update_user_profile',$attributes);?>
<label class="control-label myprofilefont" for="email"> Email Address:<em  class="colorred" >*</em></label>
  <input type="text" id="email" placeholder="Email Address" name="user_email_id" value=>
                     ..
   <img src="submit-button.png"  id="Submit_Personal_Details">
   </form>
  $('#Submit_Personal_Details').live('click',function() {
  $.ajax({
             url:'update_user_profile',
            type:"POST",
            data:{'user_email_id':uemail,...},
            success:function(response){
            },
            error:function(req,status,error){
                alert(error);

            }
        });//end of ajax

}

コントローラ:

 function update_user_profile() {
... 

}
于 2013-06-01T05:23:05.563 に答える
0

あなたはこのようにすることができます: PHP

function index(){

    if($_SERVER['REQUEST_METHOD']=="GET")
    {
        $data['hi'] = "";
    }else //if POST
    {
        $data['hi'] = $this->input->post("hi");
    }
    //load one view for both GET and POST
    $this->load->view('theview', $data);
}

HTML

<form action = "URL_TO_INDEX_FUNCTION" method = "POST">
    <input type = "text" name = "hi" value = "hi"/>
    <input type = "submit" name = "send" value = "Send"/>
</form>
<?
   if (isset($hi) && $hi != "") 
        echo $hi;
?>
于 2013-06-01T05:08:12.217 に答える
0

これにより、投稿フィールドから必要なものが得られます。

$var = $this->input->get_post('some_data', TRUE);

ただし、フィールドが空白の場合 (最初にページに入ったとき)、変数が定義されていないという問題が発生する可能性があります。したがって、コントローラーで次のように設定してください。

$var = NULL; $var = $this->input->get_post('some_data', TRUE);
$data = array('var' => $var);
$this->load->view('some_view', $data);

ビューで呼び出しecho $varた場合は、投稿から出力を取得する必要があります。変数が NULL の場合は何も取得しません。

于 2013-06-01T07:30:19.130 に答える
0

ビューが view/controller/index.php にある場合、ビューで単純に

echo form_open('controller/index');
...

if(isset($hi))echo $hi

そして、コントローラー/インデックスメソッドに次のようなものを入れるだけです

function index() {
    if($_POST){
        if (isset($_POST['send'])){
            $this->set('hi', $_POST['hi']);
        }
    }else{
        $name = $this->input->post('select');
        $this->load->model('select');
        $data['result'] = $this->select->index();
        $this->load->view('theview', $data);
    }
}
于 2013-06-01T04:48:13.660 に答える