0

here is my php code

 <?php
      session_start();
      require_once __DIR__ . '/../../core/FbChatMock.php';
      if (isset($_POST['id'])) 
       {
        $userId = (int) $_SESSION['user_id'];
        $id = htmlentities($_POST['id'],  ENT_NOQUOTES);
        $chat = new FbChatMock(); 
        $messages = $chat->getchat($userId, $id); 
        echo json_encode($messages);
       }
        $chat_converstaion = array();
        $chat_converstaion[] = '<table>';  
     ?> 

i want to pass $userId ,$id and $messages these three variable to json_encode function as i already pass $messages . here is my javascript function where i am using this json_encode

  getMessage:function(ID) {
  alert('function is at getMessage');
  var that = this;
  $.ajax({
  url: '../forms/ajax/get_messages.php',
  method:'post',
  data: {id: ID},
  success: function(data) {
    alert(data);
    var messages = JSON.parse(data);
    for (var i = 0; i < messages.length; i++)
      {
        var msg = messages[i];
        // alert (msg.message);
        fbChat.addUserMessage('',msg.message);
      }
        // alert(data);
        $('.msg_head').val('');
 //     that.getMessages();
    }
});
   },
  addUserMessage:function (user, message) 
     {
       msgBoxList = $('.msg_box').find('.msg_body');
       msgBoxList.append("<div class='msg_a'>"+message+"</div>");
     }
 };

How can i take that variable from php code to this javascript ajax call?

2 Answers 2

1

Just build an array with all the variables you wish to pass, then json_encode it :

<?php
  session_start();
  require_once __DIR__ . '/../../core/FbChatMock.php';
  if (isset($_POST['id'])) 
   {
    $userId = (int) $_SESSION['user_id'];
    $id = htmlentities($_POST['id'],  ENT_NOQUOTES);
    $chat = new FbChatMock(); 
    $messages = $chat->getchat($userId, $id); 
    $return = array('userId' => $userId, 'id' => $id, 'chat' => $chat, 'messages' => $messages);
    echo json_encode($return);
   }
    $chat_converstaion = array();
    $chat_converstaion[] = '<table>';  
 ?> 

Then build your JS variables from JSON.parse:

[...]
success: function(data) {
  alert(data);
  var json_data = JSON.parse(data);
  var userId = json_data.userId;
  var id = json_data.id;
  var chat = json_data.chat;
  var messages = json_data.messages;
[...]
Sign up to request clarification or add additional context in comments.

Comments

0

With small modifications in PHP:

echo json_encode(['messages' => $messages, 'id' => $id, 'userId' => $userId]);

And JS:

    ...
    success: function(data) {
        var data = JSON.parse(data);
        var messages = data.messages;
        var id = data.id;
        var userId = data.userId;
        ...

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.