在Java脚本中获得ajax响应时出错


error in getting ajax response in java script

在我的项目中,我使用ajax发送消息的问题是我无法在ajax函数中获得响应,该函数之前工作完美,无法找到问题的确切原因,帮助我解决它

var str = {
  message:message, department_id:department, email:email, username:name
};
$.ajax( {
  type: "POST",
  url:'<?php echo base_url(); ?>home/savemessage',
  dataType:"json",
  data: str,
  success: function(msg) {
    $('#sentchat') . hide();
    $('#chatmessage') . show();
    $('#userchat') . html(msg . dataid);
    $('.chat-box-content') . hide();
    $('#adminname span').html('waiting for admins reply');
    var elem = document . getElementById('userchat');
    elem.scrollTop = elem . scrollHeight;
  }
});
php控制器

function savemessage() {
  extract($this->input->post());

  $data['message_id'] = $this->session->userdata('msgid');
  $data['username'] = $username;
  $data['email'] = $email;
  $data['department_id'] = $department_id;
  $data['message'] = $message;
  $data['datetime'] = date('Y-m-d H:i:s');

  $data['status'] = 'new';
  $data['message_by'] = '1';
  $this->db->insert('message', $data);
  echo json_encode($username);
  exit;
}

我无法得到响应,帮助我解决它

您使用ajax与PHP脚本通信,在PHP脚本中您可以拥有想要执行的函数的内容。例如在你的代码中:

$.ajax( {
  type: "POST",
  url:'<?php echo base_url(); ?>home/savemessage.php',
  dataType:"json",
  data: {myData:str},
  success: function(msg) {
    $('#sentchat') . hide();
    $('#chatmessage') . show();
    $('#userchat') . html(msg . dataid);
    $('.chat-box-content') . hide();
    $('#adminname span').html('waiting for admins reply');
    var elem = document . getElementById('userchat');
    elem.scrollTop = elem . scrollHeight;
  }
});

然后,在服务器端php脚本"savemessage.php"将接收POST操作,因此您可以:

if(isset($_POST['myData']) && !empty($_POST['myData'])) {
  $obj = $_POST['myData'];
  //rest of your code
  echo json_encode($username);
  exit;
}

然而,从你的代码我不能看到$username定义,所以可能会返回一个错误。