2017-06-19 55 views
0

我正在使用Django并弹出,我正在显示用户详细信息我使用Ajax和Django获取HTML格式的数据,但我无法将数据绑定到弹出窗口中。无法将ajax数据绑定到弹出窗口?

我的看法: -

def app_user_by_id(request,user_id=None): 
    if request.method == "GET": 
     result_data_for_editing ={} 
     master_user_types_list = MasterUserTypes.objects.using("cms").all() 
     university_all_list = Universities.objects.using("cms").all() 
     if request.method == "GET": 
      get_user_api_url = userService['getUserDetail'] + str(user_id) 
      response_data = create_get_request(get_user_api_url) 
      if response_data.status_code == 200: 
       print response_data.text 
       json_data = json.loads(response_data.text) 
       if json_data['data'] is not None: 
        result_data_for_editing = json_data['data'] 
       if request.is_ajax(): 
        html = render_to_string('templates/app_user/user_by_id.html', 
              {'result_data_for_editing': result_data_for_editing, 
              'master_user_types_list': master_user_types_list,'university_all_list':university_all_list,}) 
        return HttpResponse(html) 

和AJAX调用功能: -

$(document).ready(function() { 
    $('.getObjectById').click(function() { 
     if ($(this).attr('id') && $(this).attr('action')) { 
      getObjectById(this); 

     } 
     else { 
      alert("id and action is required field ...............") 
     } 
    }); 
}); 


function getObjectById(object) { 

    var baseURL = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''); 
    var requestData = {}; 
    var id = object.getAttribute("id"); 
    requestData.id = id; 
    $.ajax({ 
     url: baseURL+'/appuser/getUserDetailById/'+ id, 
     method: 'GET', 
     dataType: "json", 
     contentType: "application/json", 
     beforeSend: function() { 

     }, 
     success: function (data) { 
      alert("hjwekhkwhekewh"); 
       var div ='<div ' + '>' + data+ '</div>'; 
      $("#usergetdetailfromapi").append(data); 
     }, 
     error: function (jqXHR, ex) { 
      ajaxLoaderStop(); 
     } 
    }); 

} 

有没有问题AJAX调用它的响应是全成,但我没办法把我的数据绑定到此下拉菜单: -

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
     <div class="modal-dialog" role="document"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span 
          aria-hidden="true">&times;</span></button> 
        <h4 class="modal-title">User Detail</h4> 
       </div> 
       <div class="modal-body " > 
        <div id="usergetdetailfromapi"> 

        </div> 
       </div> 

      </div> 
     </div> 
    </div> 

我刚刚调试了我的ajax请求,它不是在成功案例中它将要错误功能。

预先感谢帮助

+0

你得到了什么错误? – xyres

+0

我有成功和错误案件警报弹出,但成功警报不弹出,而是错误警报弹出窗口 –

+0

那么,你有什么错误?看看你的浏览器控制台日志。按下“Ctrl + Shift + J”,告诉我们你看到了什么错误信息。 – xyres

回答

0

我得到解析错误,因为我声明dataTYPE =“JSON”,但我没有得到任何JSON数据,我删除了dataType,它的工作。

function getObjectById(object) { 

    var baseURL = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''); 
    var requestData = {}; 
    var id = object.getAttribute("id"); 
    requestData.id = id; 
    $.ajax({ 
     url: baseURL+'/appuser/getUserDetailById/'+ id, 
     method: 'GET', 
     contentType: "application/json", 
     beforeSend: function() { 

     }, 
     success: function (data) { 
      alert("hjwekhkwhekewh"); 
       var div ='<div ' + '>' + data+ '</div>'; 
      $("#usergetdetailfromapi").append(data); 
     }, 
     error: function (jqXHR, ex) { 
      ajaxLoaderStop(); 
     } 
    }); 

} 
0
$.ajax({ 
    url: '/appuser/getUserDetailById', 
    method: 'POST', 
    data: { 'id': id }, 
    dataType: "json", 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
     alert("hjwekhkwhekewh"); 
     var div = '<div ' + '>' + data.d + '</div>'; 
     $("#usergetdetailfromapi").append(data.d); 
    } 
}); 

这里更新的代码使用它。我认为这是工作。

+0

我怀疑它会工作。 'id'应该是url的一部分,这就是后端视图所期望的。 – xyres