2017-12-01 5 views
0

私はモーダル火にこの要素を使用します、アイコン上の最初のクリックでモーダルショーを要素IDを取得し、それに基づいてGETリクエストを実行

$('#modal-default').on('shown.bs.modal', function (e) { 
    e.preventDefault(); 
    $('i').on('click', function(){ 
    id = $(this).attr('id'); 
    }); 
    $.ajax({ 
    method: "GET", 
    url: baseURL + 'users/test/view/' + id, 
    dataType: "json", 
    success: function(data){ 
     $('#first').val(data.first_name); 
     $('#last').val(data.last_name); 
     $('#email').val(data.email); 
     $('#phone').val(data.phone_number); 
    } 
    }); 
}); 

<i data-toggle="modal" id="'.$user->user_id.'" data-target="#modal-default" data-toggle="tooltip" title="Edit" class="fa fa-pencil-square-o"></i> 

Javascriptをデータは含まれていません。また、URLへのリクエストは実行されません(ネットワークには表示されません)。コンソールはidが(URLを含む行の)未定義であると私に伝えます。 ページを再読み込みせずにもう一度クリックすると動作します。

私はこの作業を最初のクリックで行うことができますか?私は何をすべきか?次のコードが評価される

答えて

1

$('i').on('click', function(){ 
    id = $(this).attr('id'); 
}); 

id変数が宣言されているが、ユーザーがi要素をクリックします後にのみ取り込まれます。

$.ajaxリクエストは、変数を宣言した直後であり、入力後ではないことに注意してください。

$.ajaxコールをclickコールバック内に移動することを検討してください。

関連する問題