dipti
dipti

Reputation: 71

append return value in a div in ajax

I want to append return array value in a div in ajax. My return array value is

  Array
  (
  [0] => Array
    (
        [m_id] => 35
        [event_id] => 421
        [activity_id] => 0
        [from] => dipti
        [to] => 1,2
        [cc] => 1
        [bcc] => 2
        [subject] => test
        [content] => dsfssdfsdfsdf
        [reply_before] => 0000-00-00
        [inreplyof_mid] => 0
        [is_important] => 
        [is_deleted] => 
    )

  )

my script is

<script>
function get_mail_content(m_id){
    var datastring = 'm_id=' + m_id;
    var a= false;
    $.ajax({
        type: "POST",
        async: false,
        url: "<?php echo site_url(); ?>admin/get_mail_contents",
        data: datastring,
        cache: false,
        success: function (result) {
            console.log(result);
            $("#content").append('<div class="mail-toolbar clearfix"> <div class="float-left"><h4 class="font-primary">This is a demo email title</h4></div><div class="float-right"><a href="#" class="btn btn-primary" title="Reply"> Reply <i class="glyph-icon icon-mail-reply"></i></a><a href="#" class="btn btn-default" title="Print"><i class="glyph-icon icon-print"></i></a><a href="#" class="btn btn-danger mrg10L" title="Delete"> <i class="glyph-icon icon-trash-o"></i></a> </div></div><div class="divider"></div><div class="pad5A clearfix mrg10B"><div class="float-left"><b>"' + result['from']  + '"</b> ([email protected]) <i>to</i> <b>me</b></div> <div class="float-right opacity-80"><i class="glyph-icon icon-clock-o mrg5R"></i> 17:55, 15.10.2014</div></div><div class="email-body"><p>"' + result["content"] + '"</p></div><div class="button-pane"><a href="#" class="btn btn-blue-alt" title="Reply"><i class="glyph-icon icon-mail-reply"></i> Reply </a><a href="#" class="btn btn-default" title="Reply">Forward<i class="glyph-icon icon-mail-forward"></i> </a> </div>');  
        }
    });
    return a;
}
</script> 

when i append it shows "undefined" message,how can i append my array value in this div.

Upvotes: 1

Views: 765

Answers (2)

lalithkumar
lalithkumar

Reputation: 3540

Best approach is in PHP you need to return

Json_encode($array);

And in Javascript:

var result=$.parseJSON(data);
   console.log(result.from);

Your Jquery will look like this:

$.ajax({
     type: "POST",
     async: false,
     dataType: "json",
     url: "<?php echo site_url(); ?>admin/get_mail_contents",
     data: datastring,
     cache: false,
     success: function (data) {
     var result=$.parseJSON(data);
     console.log(result);
     $("#content").append('<div class="mail-toolbar clearfix"> <div class="float-left"><h4 class="font-primary">This is a demo email title</h4></div><div class="float-right"><a href="#" class="btn btn-primary" title="Reply"> Reply <i class="glyph-icon icon-mail-reply"></i></a><a href="#" class="btn btn-default" title="Print"><i class="glyph-icon icon-print"></i></a><a href="#" class="btn btn-danger mrg10L" title="Delete"> <i class="glyph-icon icon-trash-o"></i></a> </div></div><div class="divider"></div><div class="pad5A clearfix mrg10B"><div class="float-left"><b>"' + result.from  + '"</b> ([email protected]) <i>to</i> <b>me</b></div> <div class="float-right opacity-80"><i class="glyph-icon icon-clock-o mrg5R"></i> 17:55, 15.10.2014</div></div><div class="email-body"><p>"' + result.content + '"</p></div><div class="button-pane"><a href="#" class="btn btn-blue-alt" title="Reply"><i class="glyph-icon icon-mail-reply"></i> Reply </a><a href="#" class="btn btn-default" title="Reply">Forward<i class="glyph-icon icon-mail-forward"></i> </a> </div>');  
     }
 });

Upvotes: 1

Harshavardhan
Harshavardhan

Reputation: 382

make datatype as json and receive it is as json format and try.

Upvotes: 0

Related Questions