Ajax从Laravel接收一组对象
Ajax receive a collection of objects from Laravel
我目前正在尝试为我的网站创建我自己的即时消息(没有使用插件-我试图手动制作它用于学习目的),我希望尝试向服务器发送ajax请求,以获取两个用户之间的所有消息列表我的问题是:ajax是否可以"读取"从Laravel发送的Message对象集合(对此表示怀疑),或者是否需要以某种方式进行格式化我最初想使用列表来获取sender_id和消息(默认情况下按日期排序),但我不认为javascript可以读取PHP的(而不是)数组。到目前为止,我想出的唯一可行的解决方案是发送一个带有sender_id的数组,然后是整个会话的消息,或者发送两个数组——一个数组中所有sender_id都按顺序排列,另一个数组则按顺序排列所有消息。
谢谢。
您可以使用JSON在PHP和JavaScript之间进行通信(查找PHP JSON_encode和JSON_decode函数),它将允许您在语言之间几乎以本地方式传递复杂数组。
编辑:几个例子说明了它是如何工作的,我在这里使用jQuery作为例子
通过AJAX从PHP脚本请求信息:
$.ajax({
method: 'GET',
dataType: 'json',
success: function(data) {
for (i in data.messages) {
output(data.messages[i]);
}
}
});
var output = function(message) {
console.log(message.id);
console.log(message.sender.id);
};
PHP脚本可以输出:
$messages = array(
array(
'id' => 1,
'message' => 'Awesome',
'sender' => array(
'id' => 1, 'name' => 'John',
),
),
);
echo json_encode(array('messages' => $messages));
通过AJAX使用JSON发送信息:
// Example data object, you can have this infinitely nested
var data = [
{id: 1, "message": "test" }
];
$.ajax({
method: 'POST',
dataType: 'json',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
});
var output = function(message) {
console.log(message.id);
console.log(message.sender.id);
};
然后,PHP脚本可以使用以下内容读取:
$data = json_decode(file_get_contents('php://input'), true);
// This becomes a simple 2D PHP array which is an exact representation as your JS object. The above example data can be output as:
foreach ($data as $message) {
echo $message['id'] . ' - ' .$message['message'];
}
相关文章:
- 通过推送json构建一个数组对象
- 处理对象数组并将它们以 4 个为一组进行分配
- 使一组对象与 jQuery 一起拖动
- 将json的每个对象的一组值推送到不同的数组中
- 旋转一组对象,同时保持其方向不变
- 如何使用用户定义的相等函数在Javascript中创建一组用户定义的对象
- 在JavaScript中,从一组数组递归地构建一个字典/嵌套对象
- LoDash:从一组对象属性中获取一组值
- 在 Javascript 中使用 ForEach 填充数组对象时,我是否需要定义一个数组对象
- 将数组/对象键值替换为另一个数组/对象 javascript 中的键值
- 从一组数据或数组创建对象
- 打字稿函数接受一个或一组对象
- 在 Knockout.js 订阅的帮助下对一组对象进行动画处理
- 如何遍历一组值对 JSON 对象
- 将一个对象制作成一组对象
- Ajax从Laravel接收一组对象
- 我可以在JSON对象中放入一组对象吗?
- js:加载与该对象相关的一组对象
- 在javascript中遍历一组对象,并从该函数返回true
- javascript中的一组对象