1

私はコードイグナイターとjqueryの初心者です。ユーザーが何かを入力すると、データベースのツールチップにデータが表示されるテキストボックスがあります。私の状況では、「billno」という名前のtexboxがあります。ユーザーがテキストボックスに請求書番号を入力すると、請求書番号に対するデータが表示されます。コントローラーからajaxで表示するためにデータを渡す方法がわかりません。パスした後、ツールチップに表示する方法は私のコードです。

Bill No:<?php echo form_input($bill_no); ?>
<input type="hidden" class="hiddenUrl"><span class="checkbillno" data-trigger="manual"


     data-title="bill no" data-content="here i want to display results"></span> 

私のJavaScript

<script type="text/javascript">

    $(document).ready(function(){

        $('#bill_no').blur(function(){

            if( $('#bill_no').val().length >= 3 )
                {
                  var bill_no = $('#bill_no').val();
                  getResult(bill_no); 
                }
            return false;
        })
        function getResult(billno){
            var baseurl = $('.hiddenUrl').val();
            $('.checkbillno').addClass('preloader');
            $.ajax({
                url : baseurl + 'Controller/checkBillNo/' + billno,
                cache : false,
                success : function(response){
                    $('.checkbillno').removeClass('preloader');
                    if(response == 'userOk')
                        $('.checkbillno').removeClass('preloader');
                    if(response == 'userOk') $('.checkUser').removeClass('userNo').addClass('userOk');
                    else $('.checkUser').removeClass('userOk').addClass('userNo');

                }
            })
        }
    })

ここで私がしているのは、データベースの請求書番号をチェックするだけで、データベースで利用可能な場合はクラス「userok」を追加し、それ以外の場合は「userfalse」を追加します。請求書番号..私はモデルでこれを行う方法を知っていますが、コントローラーからajaxに渡す方法がわかりません。その後、ツールチップに結果が表示されます

私のコントローラー

function checkBillNo($billno){
    $this->load->model('returnModel');
    $query = $this->returnModel->checkBillNo($billno);

    if($query == 1 ) 
        $data['result'] = $query; //how can i pass this result into view in tooltip... (span class)

    else 
        echo 'userNo';

}
4

1 に答える 1

0

データを操作する便利な方法は、データ型でjsonを使用することです。

function getResult(billno){
     var baseurl = $('.hiddenUrl').val();
     $('.checkbillno').addClass('preloader');
     $.ajax({
          url : baseurl + 'Controller/checkBillNo/' + billno,
          cache : false,
          dataType: 'json',
          success : function(response){
               $('.checkbillno').attr('data-content', response.toolTip);
          }
     })
}

これで、js関数は応答としてjsonでエンコードされた配列を期待するため、コントローラーで次のようなことを行うことができます。

$forToolTip = '';
foreach($query->result() as $row){
    $forToolTip .= $row->key;
}

$result['toolTip'] = $forToolTip;
echo json_encode($result);

概念に一致するように変数を変更する

于 2013-01-25T10:41:50.227 に答える