>  기사  >  백엔드 개발  >  javascript - 페이지를 새로 고치지 않고 드롭다운 메뉴 선택을 기반으로 Ajax를 통해 배경 데이터를 얻는 방법

javascript - 페이지를 새로 고치지 않고 드롭다운 메뉴 선택을 기반으로 Ajax를 통해 배경 데이터를 얻는 방법

WBOY
WBOY원래의
2016-12-05 13:44:171983검색

드롭다운 메뉴 세트를 사용하고 싶은데, 그 중 하나를 선택하면 선택한 목록 제목을 기준으로 조건에 맞는 목록을 필터링하여 아래 페이지에 표시하고 싶습니다. 어떻게 하면 될까요? 코드로 이것을 달성할 수 있나요?

답글 내용:

드롭다운 메뉴 세트를 사용하고 싶은데, 그 중 하나를 선택하면 선택한 목록 제목을 기준으로 조건에 맞는 목록을 필터링하여 아래 페이지에 표시하고 싶습니다. 어떻게 하면 될까요? 코드로 이것을 달성할 수 있나요?

<code>$('select').change(function(){//监控select的change事件
    var dom = document.getElementById('id'),
    data = dom.options[dom.selectedIndex].value;//选中的option的value;

    ajax({});
    
});</code>

다음 단계가 있을 수 있습니다.

  1. 선택한 드롭다운 메뉴(ID/제목, 일반적으로 ID를 가져오고 백그라운드로 이동하여 이를 기반으로 데이터베이스에서 해당 데이터를 가져옵니다)의 값을 가져옵니다. 아이디)

  2. 백엔드

  3. 로 전송됩니다.
  4. 백엔드는 프런트엔드에서 전송한 매개변수의 값을 가져와 데이터베이스에 쿼리한 후 원하는 형식 유형으로 조합하여 프런트엔드로 반환합니다.

  5. 프런트엔드는 html 작업(콘텐츠 업데이트)을 구현합니다

  6. 다음과 같이 코드를 구현합니다(jQuery를 사용)

<code><script type="text/javascript">
    $("select").change(function() {
        var title = $(this).text();  // 1、获取选择下拉框的标题
        //var id  = $(this).val();  获取选中的ID值
        var url   = "";  //这里填写后端的url 
        $.ajax({   //2、发送给后端
            url: url, 
            type: 'POST',  //设置发送的方式 这里假设为POST
            dataType: 'html',  //返回的数据类型
            data: {title: title},  //把选中的标题发给后端
            success:function(data) {
                // 4、这里写成功后更新页面的操作
            }
        })
    });
</script></code>
<code><?php
$title = $_POST['title']; //接收参数  选中的ID或者标题

//3、根据这个标题或者ID 去数据库查询匹配到的相关的内容 然后根据需求组装成html格式

echo $html;  //返回给前端
exit;</code>

세 단계로 나눌 수 있습니다.

<code>1、ajax请求后端接口,接口返回数据。(一般返回json)
2、ajax在回调函数里面,解析数据。
3、把数据写到页面,看你情况用html还是append</code>

정말 광범위한 질문입니다. 먼저 다음 "js 템플릿"을 이해하세요.

<code>$("select").onchange(function(){
    console.log($(this).val());//这里的this.val 就是当前选中的option的val 根据这个val 进行逻辑判断
})</code>
로그에 함수를 작성하고 값을 전달하여 논리 연산을 수행하는 것이 좋습니다

위 답변은 모두 매우 훌륭합니다. 자바스크립트의 onchange 이벤트에 지나지 않습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.