AJAX——URL查询参数

1 URL查询参数

定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据

语法:http://xxxx.com/xxx/xxx?参数名1=值1 & 参数名2=值2

2 axios-查询参数

语法:使用axios提供的 params 选项

注意:axios在运行时把参数名和值,会拼接到 url?参数名=值

城市列表:http://hmajax.itheima.net/api/city?pname=河北省

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
    城市列表:http://hmajax.itheima.net/api/city
    参数名:pname
    值:省份名字 
    -->
    <p></p>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>
        axios({
            url:'http://hmajax.itheima.net/api/city',
            // 查询参数
            params:{
                pname:'河北省'
            }
        }).then(result => {
            console.log(result.data.list)
            document.querySelector('p').innerHTML = result.data.list.join('<br>')
        })
    </script>
</body>
</html>

3 地区查询

需求:根据输入的省份名字和城市名字,查询地区并渲染列表

首先:确定URL网址和参数说明

  • 查询某个省内某个城市的所以地区:http://hmajax.net/api/area
  • 参数名:
    • pname:身份名字或直辖市名字,比如北京、福建省、辽宁省…
    • cname:城市名字,比如北京市、厦门市、大连市…

完整:http://hmajax.itheima.net/api/area?pname=北京&cname=北京市

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>案例_地区查询</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css">
  <style>
    :root {
      font-size: 15px;
    }

    body {
      padding-top: 15px;
    }
  </style>
</head>

<body>
  <div class="container">
    <form id="editForm" class="row">
      <!-- 输入省份名字 -->
      <div class="mb-3 col">
        <label class="form-label">省份名字</label>
        <input type="text" value="北京" name="province" class="form-control province" placeholder="请输入省份名称" />
      </div>
      <!-- 输入城市名字 -->
      <div class="mb-3 col">
        <label class="form-label">城市名字</label>
        <input type="text" value="北京市" name="city" class="form-control city" placeholder="请输入城市名称" />
      </div>
    </form>
    <button type="button" class="btn btn-primary sel-btn">查询</button>
    <br><br>
    <p>地区列表: </p>
    <ul class="list-group">
      <!-- 示例地区 -->
      <li class="list-group-item">东城区</li>
    </ul>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    /*
      获取地区列表: http://hmajax.itheima.net/api/area
      查询参数:
        pname: 省份或直辖市名字
        cname: 城市名字
    */
   // 目标: 根据省份和城市名字, 查询地区列表
   // 1. 查询按钮-点击事件
   document.querySelector('.sel-btn').addEventListener('click', () => {
    // 2. 获取省份和城市名字
    let pname = document.querySelector('.province').value
    let cname = document.querySelector('.city').value

    // 3. 基于axios请求地区列表数据
    axios({
      url: 'http://hmajax.itheima.net/api/area',
      params: {
        pname,
        cname
      }
    }).then(result => {
      // console.log(result)
      // 4. 把数据转li标签插入到页面上
      let list = result.data.list
      console.log(list)
      let theLi = list.map(areaName => `<li class="list-group-item">${areaName}</li>`).join('')
      console.log(theLi)
      document.querySelector('.list-group').innerHTML = theLi
    })
   })


  </script>
</body>

</html>

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现二级(多级)联动的方法一般有两种,一种是通过页面刷新实现,另一种是通过Ajax实现。下面我将介绍一种基于Ajax的实现方法。 首先,在前端页面中建立两个下拉框,第一个下拉框用于选择省份,第二个下拉框用于选择城市。当选择省份后,第二个下拉框中应该只显示该省份下的城市列表。 在后端,我们需要编写一个Web服务,用于获取城市列表。该Web服务应该接收省份名称作为参数,并返回该省份下的城市列表。在Asp.Net中,我们可以使用WebMethod来实现该功能。 然后,在前端页面中,我们需要使用Ajax来调用该Web服务,并将返回的城市列表显示在第二个下拉框中。具体实现方法如下: ```javascript // 定义一个函数,用于获取城市列表 function getCityList(province) { $.ajax({ type: "POST", url: "CityService.asmx/GetCityList", data: "{'province':'" + province + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { // 将返回的城市列表显示在第二个下拉框中 var cityList = response.d; var citySelect = $("#citySelect"); citySelect.empty(); for (var i = 0; i < cityList.length; i++) { var cityOption = "<option value='" + cityList[i] + "'>" + cityList[i] + "</option>"; citySelect.append(cityOption); } }, error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); } }); } // 当选择省份时,调用getCityList函数获取城市列表 $("#provinceSelect").change(function () { var province = $(this).val(); getCityList(province); }); ``` 需要注意的是,getCityList函数中的url应该指向我们编写的Web服务的地址。另外,我们还需要在Web.config文件中配置一些内容,具体可以参考相关文档。 这样,我们就实现了基于Ajax的二级(多级)联动功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再快一步`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值