ajax实现百度搜索输入动态获取数据

这里简单的利用ajax原理来模拟百度的搜索,实现边输入边动态的获取服务器的数据。

1、HTML页面布局

<html>
     <head>
    <meta charset="UTF-8">
    <title></title>
      </head>
     <body>
         <input type="text" name="txt" id="txt" value="" />
         <ul id="ul">
         </ul>
      </body>
</html>

2、style样式页面

<style>
input{
    width: 300px;
    height: 30px;
}
ul{
    list-style: none;
    width: 300px;   
    padding: 0;
    margin:0;
    border: 1px solid #ccc;     
    display: none;          
    }
ul li{
    list-style: none;
    width: 300px;
    height: 30px;
    line-height: 30px;      
    }
ul li a{
    display: block;
    color: #333;
    text-decoration: none;
}
ul li a:hover{
    background: #ccc;
}
</style>

3、javascript代码

<script>
function fn(data){
    console.log(data)
    var oUl=document.getElementById('ul');
    var arr=data.s;         
    var html="";
    for(var i=0;i<arr.length;i++){              
    html+='<li><a href="https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd='+arr[i]+'" target="_blank">'+arr[i]+'</a></li>';
    }
    oUl.innerHTML=html;
}
</script>
<script>
    window.onload=function(){
    var oUl=document.getElementById('ul');
    var oTxt=document.getElementById('txt');
    var oHead=document.getElementsByTagName('head')[0];
    oTxt.onkeyup=function(){    
    var oS=document.createElement('script');//动态添加script标签
    oS.src='https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+oTxt.value+'&cb=fn';//从百度获取的接口数据
    oHead.appendChild(oS);
    if(oTxt.value!=''){ 
        oUl.style.display='block';
    }else{
        oUl.style.display='none';
        }
    }

}
</script>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用Python中的requests库向后端API发送请求来获取数据。假设你有一个后端API可以接受月份作为参数并返回相应的数据,你可以在前端页面中使用JavaScript监听输入框的变化事件,当输入框的值发生变化时,通过Ajax请求将月份发送到后端API,并将返回的数据渲染到页面上。 下面是一个简单的示例代码: HTML: ```html <input type="text" id="monthInput" placeholder="请输入月份"> <div id="dataContainer"></div> ``` JavaScript: ```javascript var monthInput = document.getElementById('monthInput'); var dataContainer = document.getElementById('dataContainer'); monthInput.addEventListener('change', function() { var month = monthInput.value; var url = '/api/data?month=' + month; // 发送Ajax请求 var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { // 渲染数据 var data = JSON.parse(xhr.responseText); dataContainer.innerHTML = '月份:' + data.month + '<br>' + '数据:' + data.data; } else { console.log('请求错误:' + xhr.status); } } }; xhr.send(); }); ``` Python后端API: ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/api/data') def get_data(): month = request.args.get('month') # 查询数据库或其他操作获取数据 data = {'month': month, 'data': '这是 ' + month + ' 的数据'} return jsonify(data) if __name__ == '__main__': app.run(debug=True) ``` 这样,当用户在输入框中输入月份时,就会动态获取相应的数据并显示在页面上。当然,具体实现还需要根据你的具体业务需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值