0

顧客の名前、電子メール、ファックス、電話番号を含む顧客詳細ビューをロードするコントローラーがあります。... etcシステムのユーザーが顧客名の形式で入力するときに、この顧客がデータベースに存在するかどうかを確認し、連絡先の詳細を電子メール、ファックスなどの形式で即座に表示するようにします...などはこれですビューをもう一度ロードしなくても実行できますか?

4

2 に答える 2

0

1.ビューをロードするときに顧客の配列を設定することでこれを行うことができます。ユーザーが名前を入力すると、所有している配列でこの値を確認できます。コントローラから取得したphp配列のjs配列を作成する必要があることに注意してください。

2.ajaxを使用します。シンプルでダイナミック。

于 2013-03-12T07:43:59.337 に答える
0

これがお役に立てば幸いです。

コントローラー:[私は関数だけを書いています。]

public function customer_details() {
       $data['base_url'] = base_url();
       $data['somedata'] = 'somevalue';
       $this->load->view('customerDetailsView',$data);
}
public function ajax_fetchDetails() {
       $customerName = $this->input->post('cname');
       $this->load->model('customerDetails');
       $cdetails = $this->customerDetails->fetchdetails($customerName);
       if(!empty($cdetails)) {
          echo json_encode($cdetails);
       }
       else echo '0'; //Handle it in view.
}


モデル:[独自のクエリを作成]

Select * from `customerdetails` where `name` like $customerName limit = 1;


ビュー:customerDetailsView[タグに表示されるものだけを書き込んでいます]

<label for='cname'>Customer Name:</label> <input type="text" id="cname" />
<br/>
<input type="button" id="fetchbtn" value="Fetch Details" />
<br/>
<label for='email'>Email: </label> <input type="text" id="email" />
<label for='fax'>Fax: </label> <input type="text" id="fax" />

...だから、すべての詳細がカバーされるまで。

<!--For the following script to work you'll have to use jquery library.-->
  <script type="text/javascript">
    $("#fetchbtn").onclick( function(event) {
        var name = jQuery.trim($("#cname").val()); //Fetch the customer name enter in the input field.
        if(name != '') // Check for empty condition
        {
            $.ajax({
            type: "POST", url:"<?php echo $base_url.'<CONTROLLER NAME>/ajax_fetchDetails'; ?>",
            data:{cname:name},
                success: function(result) {
                    if(result != '0') {
                        var customerDetails = JSON && JSON.parse(result) || $.parseJSON(result); // Parse the JSON encoded customer details into string.
                        var email = customerDetails.email, fax = customerDetails.fax; //... So on
                        $("#email").val(email); $("#fax").val(fax); //... So on
                    }
                }
            });
        }
    });
  </script>

ここでの唯一の欠点は、2人の顧客が同じ名前を持っている場合、最初の顧客の詳細のみが取得されることです。これを回避するには、顧客ごとに一意のユーザー名を維持する必要があります。

于 2013-03-12T08:39:44.707 に答える