0

I have a strange issue, which I don't understand.

At this point I set a php array as a jquery variable and call myFunction with chatData as parameter:

var chatData = JSON.parse('<? echo json_encode($chatData); ?>');
myFunction(chatData)



function myFunction(chatData) {

  console.log("ORIGINAL")
  console.log(chatData)


  $.ajax({
    type: "POST",
    url: "getData.php",
    data: 'chatData=' + JSON.stringify(chatData),
    dataType: 'json',
  }).done(function(result) {

    if (result.length > 0) {

      for (var i = 0; i < result.length; i++) {

        console.log("SEARCH " + result[i].chatToken)

        for (var x = 0; x < chatData.length; x++) {

          for (key in chatData[x]) {

            if (chatData[x].chatToken.indexOf(result[i].chatToken) != -1) {
              //chatData[x].lastMessageID = 999
              console.log("FOUND  " + chatData[x].chatToken);
            }

          }
        }

        console.log("ChatData AFTER UPDATE")
        console.log(chatData)

      }
    }

  })

};

This function will do some stuff and the console log Output will be this: enter image description here

All ok ! As you see, I exclude the following line:

chatData[x].lastMessageID = 999

This line should change the value of lastMessageID to 999, after ajax is done. Now: I run the code again with this line and the output shows like this:

enter image description here

lastMessageID has the Number 999 - perfect! What I don't understand: Why has chatData this new value at the beginning ("START"). I change this value the first time in the "ajax done part" - nowhere before.

Do you have an idea?

s0xzwasd
  • 2,895
  • 3
  • 17
  • 26
Trombone0904
  • 4,132
  • 8
  • 51
  • 104

0 Answers0