09.net网站开发(前端):6.类淘宝组合搜索效果jQuery+Ajax

news/2024/5/20 2:06:46/文章来源:https://blog.csdn.net/wowkk/article/details/10296963

上一节讲到jQuery,本来还不能这么快就发jQuery+Ajax的,因为这部分对于新手来说,不是很好理解,但为了配合发我的实习经验,就先贴出来了。新手先有个概念就好,Ajax是为了前端能和后台交互的,它们的关系就像:顾客来到某餐厅,服务员就像前台的一个元素,厨房就像后台的一个元素,你想吃什么和服务员说,服务员就让厨房里的人做出对应的佳肴,然后服务员拿着你想要的东西给你。(菜式名,钱等是传入参数,佳肴是返回数据~)

不扯了~我需要实现一种比较复杂的组合搜索效果。类似:

前端会记录所要搜索的关键词,每次新增一个条件,就请求后台一次返回符合要求的数据,同样,没删除一个条件,也会重新返回对应数据。

下面是我做的一个还有很多Bug的Demo,原本我想在后台保存结果数据,用了全局static变量来保存。

后来还是测试不出正确结果,觉得还是将数据在前端保存就好吧,然后每次都让后台根据前端的数据来返回新的数据。

前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxJquery.aspx.cs" Inherits="EMS.WEB.Enterprise.ajaxJquery" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title></title><script src="js/jquery-1.4.1-vsdoc.js" type="text/javascript"></script><script type="text/javascript">$(function () {var tabIds = new Array();//下拉框选项改变时,列表选项判断后添加。Label1(相当图表)更新。$("#mySelect").change(function () {var selectId = $("#mySelect").val();var selectText = $("#mySelect option:selected").text();var isSecond = false;for (var i = 0; i < tabIds.length; i++) {if (tabIds[i] == selectId) {isSecond = true;return;}}if (!isSecond) {tabIds.push(selectId);$("#myUi").append("<li " + "id='" + selectId + "'" + ">" + selectText + "</li>");$.ajax({type: "get",url: "ajaxJquery.aspx",data: "id=" + selectId + "&" + "show=1",async: false,contentType: "application/json;charset=utf-8",dataType: "json",success: function (msg) {$("#Label1").text("");$.each(msg, function () {$("#Label1").text($("#Label1").text() + "+" + this.data);});}});}});//点击列表选项时,删除该选项,Label1(相当图表)更新。$("#myUi li").live("click", function () {var selectId = $(this).attr("id");$(this).remove();$.ajax({type: "get",url: "ajaxJquery.aspx",dataType: "json",async: false,data: "id=" + selectId + "&" + "show=0",success: function (msg) {$("#Label1").text("");$.each(msg, function () {$("#Label1").text($("#Label1").text() + "+" + this.data);for (var i = 0; i < tabIds.length; i++) {if (tabIds[i] == selectId) {tabIds.splice(i, 1);return;}}});}})})});</script><style type="text/css">#myUi li{background-color: Aqua;margin-left: 4px;float: left;width: 70px;list-style: none;}</style>
</head>
<body><form id="form1" runat="server"><div><select id="mySelect" runat="server"></select></div><div id="myTab"><ul id="myUi"></ul></div><div style="clear: left;"></div><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><div id="ddiv" runat="server"></div></form>
</body>
</html>

 

后台:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Text;namespace EMS.WEB.Enterprise
{[Serializable]//序列话后才能用系统类转换为jsonpublic class Data{public int index;public string data;public Data(int i, string d){index = i;data = d;}}public partial class ajaxJquery : System.Web.UI.Page{static List<Data> data= new List<Data>();//用来装 选择过的选项 的索引号及数据public List<Data> ShowData(int id){data.Add(new Data(id, "图:" + id));return data;}public List<Data> RemoveData(int id){for (int i = 0; i < data.Count; i++){if (data[i].index == id){data.Remove(data[i]);break;}}return data;}protected void Page_Load(object sender, EventArgs e){if (!IsPostBack && Request.Params["id"] == null){#region 初始化数据for (int i = 0; i < s.Length; i++){mySelect.Items.Add(new ListItem(s[i], i.ToString()));}#endregionreturn;}if (Request.Params["id"] != null){int id = int.Parse(Request.Params["id"]);JavaScriptSerializer json = new JavaScriptSerializer();if (Request.Params["show"] == "1"){ShowData(id);}else if (Request.Params["show"] == "0"){RemoveData(id);}Response.Write(json.Serialize(data));Response.End();}}}
}


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_838552.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11.net网站开发(交互):2.MVC 购物车

这一节完了之后&#xff0c;差不多就停止基础知识的更新了。接下来可能要做一个实例项目&#xff0c;用MVC或者传统.NET WEB 还不是很清楚&#xff0c;要做什么项目也还在考虑&#xff0c;反正肯定开源附加完整文档。但我需要它是以完成某种任务的形式&#xff0c;不然真没那么…

30个酷毙的交互式网站(HTML5+CSS3)

很久前就像找些文章来翻译&#xff0c;and这是第一篇&#xff0c;刚开始翻译着很有兴致&#xff0c;但中间就开始累了&#xff0c;感觉好多好多&#xff0c;因为不仅要翻译&#xff0c;还要看网站&#xff0c;还要排版&#xff0c;花了两天空闲时间还是硬着头皮翻译下来了&…

17项目简介与草稿设计(网站开发)

做网站需要的基础技能已经交待得差不多了&#xff0c;接下来就是给出一个项目案例了。想做一个开源的论坛源码&#xff0c;有兴趣的朋友可以一起参与哈&#xff0c;QQ 696619。 本项目简介&#xff1a; 《内部论坛》&#xff0c;为移动设备所开发的论坛&#xff0c;发展重点为…

19网站实现QQ登录功能

一般网站要先做个用户注册的功能页面&#xff0c;但我的网站名气不大&#xff0c;不需要要求用户注册&#xff0c;所以直接使用腾讯QQ登录的API接口。 如何使用JS_SDK让网站拥有QQ登录的功能&#xff0c;官网的这篇文章写得还算完整&#xff1a;http://connect.qq.com/intro/lo…

20快速开发网站项目的工具和方法

本来已经进入“正式开发”的教程部分了&#xff0c;但这次还是要先插入一些“旁门左道”&#xff0c;因为很多时候&#xff0c;我们仅仅只是要演示一个产品概念或者完成一次老师布置的课程设计&#xff0c;那就没必要仔仔细细地敲打每一行代码。像我这学期选修了“高级网页”课…

基于SSH的在线美食点评网站-java在线美食点评网

基于SSH的在线美食点评网站-java在线美食点评网 开发环境&#xff1a;Eclipse for J2EE,MYSQL5.1,JDK1.7,Tomcat 7首页主要展示一些当地美食。(1)用户注册&#xff1a;用户填写注册账号、密码。 (2)用户登录&#xff1a;用户注册成功后&#xff0c;使用注册账号、密码登录。成功…

关于各网站回到顶部的细节功能

对比一下吧&#xff0c;不说话了&#xff0c;很多人学到的皮毛和精髓是完全两码事。先看淘宝&#xff1a;http://item.taobao.com/item.htm?id9134206497&ali_refida3_619362_1007:1102299863:7:46702465U84y78608587678s868v3I:090efd2e7e3bc5c1f468dbe7eeb252b1&ali…

怎么看服务器linux版本,linux怎么查看版本命令_网站服务器运行维护,linux

如何解决docker内部访问不了宿主_网站服务器运行维护docker内部访问不了宿主的解决方法&#xff1a;首先配置防火墙规则并重载规则&#xff1b;然后启动容器时使用“--net host”模式&#xff1b;最后关闭防火墙即可。linux查看版本命令的方法是&#xff1a;1、# uname &#x…

网站服务器上安装的操作系统,服务器上安装的操作系统

服务器上安装的操作系统 内容精选换一换本节操作以Windows Server 2012 R2 标准版操作系统的弹性云服务器为例&#xff0c;介绍安装IIS服务的操作步骤。本节操作仅是安装IIS服务的操作步骤&#xff0c;后续搭建具体应用的操作步骤请根据业务实际情况进行配置。打开服务器管理器…

程序员实用工具网站

目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力&#xff0c;为了备忘&#xff08;收藏夹真是满了&#…

如何在oracle网站下载jdk

第一步&#xff1a;https://www.oracle.com/index.html 网址 第二部&#xff1a;最下面 找到 Downloads and Trials 下面的 Java for Developers 点击进入 第三部&#xff1a;找到下面界面 选择你需要的版本&#xff08;以java se 为例&#xff09; 之后点击 jdk downl…

使用SourceTree从GitHub网站上拉取代码

使用SourceTree从GitHub网站上拉取代码 1.进入GitHub官网&#xff0c;选择一个项目&#xff0c;复制克隆地址&#xff1b; 2.打开SourceTree&#xff0c;点击Clone&#xff0c;将刚才在GitHub上的复制的URL粘贴在源路径里&#xff0c;它会自动识别仓库类型&#xff0c;选择克隆…

常用数据结构演示网站

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

Vue+H5调起支付宝---form表单(手机网站支付)

最近做了支付功能&#xff0c;记录一下手机网站唤起支付宝&#xff0c;根据后端接口返回一个form表单字符串&#xff0c;H5将form表单渲染到页面上&#xff0c;通过提交form表单调起支付宝支付。 后端接口返回的form表单大致这样&#xff1a; 前端处理如下&#xff0c;代码贴上…

大型网站技术架构

这本书是阿里的李智慧写的&#xff0c;长这个样子&#xff1a;李智慧在《大型网站技术架构》一书中的大型网站的描述&#xff0c;真的堪称经典。大型网站应该满足以下几点&#xff1a;1.性能 2.可用性 3.伸缩性 4.扩展性 5.安全性对这几个方面的描述大致如下&#xff1a;1.…

地方网站运营分享、未来发展汇报 [十年巨献,纯干货,不忽悠]

转眼间&#xff0c;新的一年又来临了 和数以千计的老朋友、新站长在奋斗和成长中一起度过了2016 2016年整个互联网行业从前几年的波澜壮阔逐渐恢复了平静和理性 也可以说是从人心浮躁的各种盲目、盲从中&#xff0c;逐渐回归了到了真正的用户需求 很多放弃…

【网站管理1】_dede织梦后台如何发布文章

对于新手可能不了解&#xff0c;dede织梦后台是如何发文章的。下面说下我的经验。 发布文章步骤 1.打开浏览器&#xff0c;推介谷歌&#xff0c;360极速浏览器&#xff0c;火狐浏览器&#xff0c;输入网站后台网址 出现如下图登入界面 2.输入账号密码&#xff0c;登入进网站后…

【网站管理2】_如何写有质量的医疗竞价着陆页文章?

如何写有质量的着陆页文章&#xff1f; 竞价文章&#xff0c;就是供竞价账户着陆的文章&#xff0c;竞价文章的考核标准---转化率&#xff01; 由于竞价文章&#xff0c;是通过花钱直接在百度获取排名的&#xff0c;所以流量不用文章编辑考虑。如何将这些流量引导进入咨询&…

像淘宝、京东这样的大型电商网站服务器构架完全部署解决方案

任何一个大型网站都是经历用户积累然后成长&#xff0c;从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务…