通过接口或者ajax获得的二级关联分类的使用
taotaoit JavaScript 2018-06-08 2112 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6458632 2613 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

添加页面:

<SCRIPT language="JavaScript">
window.onload = login;//传入函数地址
//获得一级分类
function login() {
	$('#CON_STEP').empty();
	var ciValue = $('#CON_STEP');
	ciValue.append('<option value="">请选择一级分类</option>'); 
    $.ajax({
        type: 'POST',
        url: '接口或者ajax路径',
        data: {
            id: 0,
			n: Math.random()
        },
        dataType: 'json',
        error: '',
        success: function(d) {
			opts = d.data;
			if (opts && opts.length > 0) { 
			   	var html = []; 
				for (var i = 0; i < opts.length; i++) { 
					html.push('<option value="'+opts[i].id+'">'+opts[i].name+'</option>');
				} 
				ciValue.append(html.join(''));
			}
        }
    })
}
//选择一级分类获得二级分类
function changeSelect(){
	var obj = document.all.CON_STEP;
	var text = obj.options[obj.selectedIndex].text; // 选中文本 一级类的文本
	var id = obj.options[obj.selectedIndex].value; // 选中值 一级类的id
	$('#CON_STEP_NAME').val(text);
	//以上部分是为了获得下拉选项的文本,已便提交到数据库中去
	
	$('#CON_ID').empty();
	var ciValue = $('#CON_ID');
	ciValue.append('<option value="">请选择二级分类</option>'); 
    $.ajax({
        type: 'POST',
        url: '接口或者ajax路径',
        data: {
            id: id,
			n: Math.random()
        },
        dataType: 'json',
        error: '',
        success: function(d) {
			opts = d.data;
			if (opts && opts.length > 0) { 
			   	var html = []; 
				for (var i = 0; i < opts.length; i++) { 
					html.push('<option value="'+opts[i].id+'">'+opts[i].name+'</option>');
				} 
				ciValue.append(html.join(''));
			}
        }
    })
}
//获得二级分类下拉选项的文本
function changeSelect2(){
	var obj = document.all.CON_ID;
	var text = obj.options[obj.selectedIndex].text; // 选中文本二级类的文本
	$('#CON_ID_NAME').val(text);
	
}
</SCRIPT>
一级分类:<select id="CON_STEP" name="CON_STEP" onchange="changeSelect()">
</select>
二级分类:<select id="CON_ID" name="CON_ID" onchange="changeSelect2()">
</select>
一级分类名称(隐藏):<input type="hidden" id="CON_STEP_NAME" name="CON_STEP_NAME">
二级分类名称(隐藏):<input type="hidden" id="CON_ID_NAME" name="CON_ID_NAME">
修改页面:

修改页面跟添加页面还是有不同的,因为涉及到从数据库中获取的分类值默认选中的问题

<SCRIPT language="JavaScript">
//CON_STEP 是一级分类的值
//CON_ID 是二级分类的值
window.onload=function(){ 
  login(<%=CON_STEP%>);
  changeSelect(<%=CON_STEP%>,<%=CON_ID%>);
}
function login(CON_STEP) {
	$('#CON_STEP').empty();
	var ciValue = $('#CON_STEP');
	ciValue.append('<option value="">请选择一级分类</option>'); 
    $.ajax({
        type: 'POST',
        url: '接口或者ajax路径',
        data: {
            id: 0,
			n: Math.random()
        },
        dataType: 'json',
        error: '',
        success: function(d) {
			opts = d.data;
			if (opts && opts.length > 0) { 
			   	var html = []; 
				for (var i = 0; i < opts.length; i++) { 
					if (CON_STEP != 0 && opts[i].id == CON_STEP){
						selected = "selected";
					}else{
						selected = "";
					}
					html.push('<option value="'+opts[i].id+'" '+selected+'>'+opts[i].name+'</option>');
				} 
				ciValue.append(html.join(''));
			}
        }
    })
}
function changeSelect(CON_STEP,CON_ID){
	var obj = document.all.CON_STEP;
	if(CON_STEP == 0){
		var text = obj.options[obj.selectedIndex].text; // 选中文本 一级类的文本
		var id = obj.options[obj.selectedIndex].value; // 选中值 一级类的id
		$('#CON_STEP_NAME').val(text);
	}else{
		var id = CON_STEP;
	}	
	$('#CON_ID').empty();
	var ciValue = $('#CON_ID');
	ciValue.append('<option value="">请选择二级分类</option>'); 
    $.ajax({
        type: 'POST',
        url: '接口或者ajax路径',
        data: {
            id: id,
			n: Math.random()
        },
        dataType: 'json',
        error: '',
        success: function(d) {
			opts = d.data;
			if (opts && opts.length > 0) { 
			   	var html = []; 
				for (var i = 0; i < opts.length; i++) { 
					if (CON_ID != 0 && opts[i].id == CON_ID){
						selected = "selected";
					}else{
						selected = "";
					}
					html.push('<option value="'+opts[i].id+'" '+selected+'>'+opts[i].name+'</option>');
				} 
				ciValue.append(html.join(''));
			}
        }
    })
}

function changeSelect2(obj){
	var obj = document.all.CON_ID;
	var text = obj.options[obj.selectedIndex].text; // 选中文本二级类的文本
	$('#CON_ID_NAME').val(text);	
}
</SCRIPT>
<!--
CON_STEP_NAME 一级分类名称
CON_ID_NAME 二级分类名称
-->
一级分类:<select id="CON_STEP" name="CON_STEP" onchange="changeSelect(0,0)">
</select>
二级分类:<select id="CON_ID" name="CON_ID" onchange="changeSelect2()">
</select>
一级分类名称(隐藏):<input type="hidden" id="CON_STEP_NAME" name="CON_STEP_NAME" value="<%=CON_STEP_NAME%>">
二级分类名称(隐藏):<input type="hidden" id="CON_ID_NAME" name="CON_ID_NAME" value="<%=CON_ID_NAME%>">

版权声明:本站原创文章,允许自由转载。

相关推荐
return和return false的区别
JavaScript | 2020-08-26 18850
1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交 2. return false,事件处理函数会取消事件,不再继续向下执行。比如表单将终止提交。 <script> function validateForm(){ var username...
console.log怎样输出换行
JavaScript | 2020-04-17 13662
两个console.log()之间默认是换行的,不用单独处理,如果想输出换行,可以用 console.log( '\n' ); 其他内容 如果同时打印数字和字符串,并且数字在前,打印字符串会添加引号显示。 console.log('test',1) ==》test 1 console.log(1,'test') ...
评论:0条
评论加载中...
发表评论