0

新しい顧客をデータベース テーブルに追加できるフォームがあります。

customer_name フィールドは一意のフィールドです。そのため、データベースへの書き込みを試みる前に、入力フィールドでフォーム検証を実行したいと考えています。

理想的には、検証は 2 段階で行うことができます。ユーザーが顧客名を入力したときに名前が使用可能かどうかを表示する ajax ルックアップ。第二に、codeigniter の検証機能は? これを利用できない場合は、送信時にクエリを実行して、存在するかどうかを確認し、それに応じて処理できますか?

私は完全な例を広範囲にレビューしてグーグル検索しましたが、何も見つかりませんでした。運が悪かったのでいくつか試してみました。残念ながら、私の Java スクリプトと jquery のスキルは存在せず、コード イグナイターを回避しようとしています。

以下の記事を確認して試してみました: http://vortexdev.netii.net/article_17/Check_the_user_name_availability_with___Codeigniter_jQuery CodeIgniter - データベースに値が既に存在するかどうかを確認する http://www.joshuawinn.com/check-if-email -username-exists-with-codeigniter-and-jquery-validation/

私のコードは現在:

jquery リンク:

<head>
    <meta charset="utf-8">
    <title><?php  echo $title; ?></title>
    <link href="<?php echo base_url();  ?>styles/style.css" type="text/css" rel="stylesheet">
    <link href="<?php echo base_url();  ?>styles/menu.css" type="text/css" rel="stylesheet">
    <script type="text/javascript" src="jquery-1.9.1.min.js"></script>  
    <script type="text/javascript">

    </script>   
</head>

私のコントローラー:

function create_customer()
    {

        $this->form_validation->set_rules("customer_name","`Customer Name`","required|min_length[6]|xss_clean");
        $this->form_validation->set_rules("address_line_1","`Address Line 1`","required|xss_clean|min_length[6]");
        $this->form_validation->set_rules("address_line_2","`Address Line 2`","xss_clean|min_length[6]");
        $this->form_validation->set_rules("suburb","`Suburb`","required|xss_clean|min_length[6]");
        $this->form_validation->set_rules("city","`City`","required|xss_clean|min_length[6]");
        $this->form_validation->set_rules("postalcode","`Postal Code`","required|xss_clean|min_length[4]|max_length[5]");
        $this->form_validation->set_rules("primary_contact_name","`Contact Person Name`","required|xss_clean|min_length[6]");
        $this->form_validation->set_rules("primary_contact_email","`Contact Person email`","required|valid_email|xss_clean");
        $this->form_validation->set_rules("primary_contact_tell","`Contact Person tell`","required|xss_clean|min_length[10]|max_length[14]");

        if ($this->form_validation->run() == FALSE){
            $data["message"]="";

            $data['title']="Master Data Home Page";
            $this->load->view("master_data/view_master_data_header",$data);
            $this->load->view("master_data/view_master_data_nav");
            $this->load->view("master_data/view_content_master_data_create_customer");
            $this->load->view("master_data/view_master_data_footer");
        } else {

        $data = array(
            'customer_name' =>  $this->input->post('customer_name'),
            'address_line_1' =>  $this->input->post('address_line_1'),
            'address_line_2' =>  $this->input->post('address_line_2'),
            'suburb' =>  $this->input->post('suburb'),
            'city' =>  $this->input->post('city'),
            'postalcode' =>  $this->input->post('postalcode'),
            'primary_contact_name' =>  $this->input->post('primary_contact_name'),
            'primary_contact_email' =>  $this->input->post('primary_contact_email'),
            'primary_contact_tell' =>  $this->input->post('primary_contact_tell'),
            );

        $this->model_master_data->add_record($data);

        $this->customer_created_successfully();
            }
        }

そして私の見解:

<?php
echo validation_errors();
?>
<br>
<?php 
    echo form_open('masterdata/create_customer');
?>

<table>
    <tr>
        <td valign="top">

<?php   

    echo form_label("Customer Name", "customer_name");
    $data= array(
    "name"=>"customer_name",
    "id"=>"customer_name",
    "value"=>set_value("customer_name"));
    echo form_input($data);

    echo form_label("Contact Name", "primary_contact_name");
    $data= array(
    "name"=>"primary_contact_name",
    "id"=>"primary_contact_name",
    "value"=>set_value("primary_contact_name"));
    echo form_input($data);

        echo form_label("Contact Email", "primary_contact_email");
    $data= array(
    "name"=>"primary_contact_email",
    "id"=>"primary_contact_email",
    "value"=>set_value("primary_contact_email"));
    echo form_input($data);


    echo form_label("Contact Tel", "primary_contact_tell");
    $data= array(
    "name"=>"primary_contact_tell",
    "id"=>"primary_contact_tell",
    "value"=>set_value("primary_contact_tell"));
    echo form_input($data);

    ?>
    </td>
    <td width="20">
    <td valign="top">
    <?php

    echo form_label("Address Line 1", "address_line_1");
    $data= array(
    "name"=>"address_line_1",
    "id"=>"address_line_1",
    "value"=>set_value("address_line_1"));
    echo form_input($data);

    echo form_label("Address Line 2", "address_line_2");
    $data= array(
    "name"=>"address_line_2",
    "id"=>"address_line_2",
    "value"=>set_value("address_line_2"));
    echo form_input($data);

    echo form_label("Suburb", "suburb");
    $data= array(
    "name"=>"suburb",
    "id"=>"suburb",
    "value"=>set_value("suburb"));
    echo form_input($data);

    echo form_label("City", "city");
    $data= array(
    "name"=>"city",
    "id"=>"city",
    "value"=>set_value("city"));
    echo form_input($data);

    echo form_label("Postal Code", "postalcode");
    $data= array(
    "name"=>"postalcode",
    "id"=>"postalcode",
    "value"=>set_value("postalcode"));
    echo form_input($data);

    ?>
    </td>
        </tr>
            </table>
<br>
    <p>
        <input type="submit" value="Add New Record">
    </p>
<br>
<?php 
    echo form_close();
?>

いつものように、どんなアドバイスも本当に感謝しています。私が従うことができる完全な動作例またはチュートリアルを知っている場合は、アドバイスしてください。

再度、感謝します、

4

1 に答える 1

2

わかりましたこれはあなたにヒントを与えるでしょう

     <script type="text/javascript" >
      function registerForm(id)
    {
      $('#user_error').html('');    


  var name        = $.trim($('#name').val());


   if(name=='')
  {
      $('#user_email_error').html('All fields are required!');
      return false;
  }


  $.ajax({
  type  :   'POST',
  data    :   $('#form-register').serialize(),
  url       :   '<?=base_url()?>login/register_user',
  cache : false,    
  success: function(data){
        if(data=='name')
        {
            $('#user_error').html('This name is already in use try new one!');
            return false;   
        }



        else 
        {                   
            document.location.href='<?=base_url()?>login';
        }
      }

      });

  return false;

    }
      </script>

あなたのコントローラーのこれ

     function register_user()
{
    $str = '';

    $user_email =   $this->input->post('email');
    $name=  $this->input->post('name');
    $data_a['name']         = $name;

        $result1     =      $this->login_model->check_username($name);

        if($result1->num_rows() > 0 )
        { 
            $str = 'name';   
        }


    else
    { 
        $this->login_model->add_user($data_a);

        $str = 'goo';


     }
     echo($str);


     exit;
}

これはビューです

     <div id="user_error" style="color:#FF0000; font-size:13px; font-weight:bold"></div>
    <form method="post" action="" id="form-register" title="Register" onSubmit="return registerForm(this)">


            <input type="text" name="name" id="name" value="" class="input-unstyled" placeholder="Your name" autocomplete="off">



                    <button type="submit" id="send-register">Register</button>
           </form>
于 2013-03-02T11:31:54.750 に答える