2016-04-27 10 views
0

私は送信ボタンをクリックすると完全に動作するフォームを持っています。 URLにパラメータを追加すると、URLにアクセスするときに自動的にフォームが送信されます。URLにアクセスするときにCodeigniterフォームを送信

私のフォームは次のようになります。

<form id="form_group_data" name="form_group_data" method="post" class="form-horizontal" action="<?php echo site_url('admin/group/add')?>"> 
    <p> 
    <div class="form-body"> 
     <div class="form-group"> 
     <label class="col-md-2 control-label" for="name">Name<span class="required"> * </span></label> 
     <div class="col-md-4"> 
      <input id="name" class="form-control" type="text" name="name" required="required" value=""> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="col-md-2 control-label" for="firstname">Firstname<span class="required"> * </span></label> 
     <div class="col-md-4"> 
      <input id="firstname" class="form-control" type="text" name="firstname" required="required" value=""> 
     </div> 
     </div> 
     <input type="submit" value="Ajouter" class="btn blue"/> 
     <button type="button" class="btn default" onclick="window.location='<?php echo site_url('admin/group')?>'">Annuler</button> 
    </div> 
    </p> 
</form> 

私は手動でフィールドを記入し、それを提出した場合、それが動作します。このURLを入力すると、URLのパラメータを使用してフィールドが埋められますが、送信ボタンをクリックせずに自動的に送信することもできます。

例URLに自動的にフィールドを埋める:それは可能https://test.ch/admin/user/insert/John/Lennon

ですか?おそらくJQueryで?はい、フォームを仮定すると、URLからのデータで満たされている場合

+1

中間の人を削除して - >フォームを作成し、データをdbに直接追加します – madalinivascu

答えて

0
  • チェックはURLパラメータが存在する場合
  • はちょうど閉鎖体タグの前にこのコードを入れてjqueryの

を使用して、それを提出

<?php 
if(isset(your_url_parameters)) // check if all parameters exist in url 
{ ?> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#form_group_data").submit(); //submit the form 
    }); 
</script> 

<?php } ?> 
0

フォームを記入する権限がある場合(このURLを設定している場合)、このデータを既にフォーム送信アクションを処理している別のURLに送信することもできます。したがって、データを入力した後にこのフォームを提出するのではなく、最初にこれらのパラメータを持つアクションURL admin/group/add/other/params/hereをポイントし、そのコントローラでこれらのパラメータを確認します。ただし、この場合、csrf保護を踏み台にして潜在的な脆弱性を開かれていることに注意してください。この保護機能を有効にしている場合は、csrfトークンと投稿するデータを使用して、このエンドポイントに投稿することをお勧めします。

また、このフォームのコントローラを使用して、パラメータがURLに設定されているかどうかを確認することもできます。あなたはパラメータをチェックすることができなければならないし、それらが設定されている場合(あなたがそれを行っている場合はあなたの検証を渡す)は、フォームの提出で通常行うことを行う。

if (isset($this->uri->segment(4)) && isset($this->uri->segment(5)) { 
    // Do the work here - add to db, etc. Alternatively call the function 
    // that is supposed to do the work and pass these parameters in some way. 
    $this->load->model("my_user_model"); 
    $this->my_user_model->add_user($this->uri->segment(4), $this->uri->segment(5)); 
    redirect("success/url"); 
} 

これはまったく例です。この場合、my_user_model-> add_userのいずれかを実行する必要があります。または、理想的には、CIのフォーム検証ライブラリを使用してモデルの前で行うことができます。

CIの組み込み機能を使用してフォームや送信データを処理する方法の良い例として、form validationドキュメントをお勧めします。

関連する問題