相关:laravel 项目中(了解$.ajax才可能看懂以下)
-
$.ajax
使用get传值,在控制器获取$_Get接收数据,这条传值的路由可以在chrome开发者工具的Network中查看到。 - 关于
$.ajax
中
function selectComment(status_id) { //a标签中通过onclick触发这个函数,带参数值
$.ajax({
type: "get", //请求的方式,也有post请求
url: "comment", //请求地址,拼接到当前地址后面
dataType: "json", //json格式,控制器 返回的数据为json格式的。
cache: false, //设置为 false 将不缓存此页面
data: {
status_id: status_id, //左右为键值对,在后台接收就是左边的名
_token: "{{ csrf_token() }}"
},
success: function (Comment_content) { //参数可以理解控制器传回的值
//这里是处理接收到数据的地方
}
- 关于
$.each
,是在success:
中进行操作数据的
//类似与php的foreach,dataReply是要遍历的数据,key/value是键值对,数据存在value中,在下面调用
$.each(dataReply, function (key, value) {
cons += "<div>回复内容:"+ value.reply_content +"</div>";
});
- 在这次编程中,为了给每个遍历出的数据加上不同的id值,使用了以下方式:
<ul id="comment_content{{ $status->id }}"></ul>
//{{ $status->id }}是获取laravel控制器传来的值,这样赋值给id,每一条遍历出来id值都不同
//在ajax中就遍历就分别加到对应的id值上了,类似于下:
var comments = "#comment_content" + status_id ; //定义变量等于字符串+id值
$(comments).html(con); //使用html方法把con的值添加到对应的id值的位置
- 一个要注意的地方,关于
id
值的,单引号内部俩边的空格不能随便存在的,不能自动省略掉的。比如:
//"+item.id+"是参数,每次遍历带有不同值
con += "<div id='reply_content"+item.id+"'></div>";①
con += "<div id=' reply_content"+item.id+" '></div>";②
①和②的值是不同的,比如①是 reply_content1
,那②就是 reply_content1
俩边带空格。