안녕하세요 3-15(검색)질문입니다.
1
안녕하세요.
3-15 검색 부분에서 깃허브에 올라온 코드를 복사 붙혀넣기를 했습니다.
그리고 검색창에 검색을 했는데 아무런 반응이 일어나지 않습니다.
템플릿 하단에 자바스크립트 함수도 이미 구현이 되어 있는 상태입니다.
제 생각이지만 지금 비주얼 스튜디오가 자바스크립트 함수를 인식하지 못하고 있는 것 같습니다.. 혹시 이 문제를 어떻게 해결해야 할까요??
{% extends 'base.html' %}
{% load pybo_filter %}
{% block content %}
<div class="container my-3">
<div class="row justify-content-between my-3">
<div class="col-2">
<select class="form-control so">
<option value="recent" {% if so == 'recent' %}selected{% endif %}>최신순</option>
<option value="recommend" {% if so == 'recommend' %}selected{% endif %}>추천순</option>
<option value="popular" {% if so == 'popular' %}selected{% endif %}>인기순</option>
</select>
</div>
<div class="col-4 input-group">
<input type="text" class="form-control kw" value="{{ kw|default_if_none:'' }}">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button" id="btn_search">찾기</button>
</div>
</div>
</div>
<table class="table">
<thead>
<tr class="text-center thead-dark">
<th>번호</th>
<th>추천</th>
<th style="width:50%">제목</th>
<th>글쓴이</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
{% if question_list %}
{% for question in question_list %}
<tr class="text-center">
<td>
<!-- 번호 = 전체건수 - 시작인덱스 - 현재인덱스 + 1 -->
{{ question_list.paginator.count|sub:question_list.start_index|sub:forloop.counter0|add:1 }}
</td>
<td>
{% if question.voter.all.count > 0 %}
<span class="badge badge-warning px-2 py-1">{{ question.voter.all.count }}</span>
{% endif %}
</td>
<td class="text-left">
<a href="{% url 'pybo:detail' question.id %}">{{ question.subject }}</a>
{% if question.answer_set.count > 0 %}
<span class="text-danger small ml-2">{{ question.answer_set.count }}</span>
{% endif %}
</td>
<td>{{ question.author.username }}</td> <!-- 글쓴이 추가 -->
<td>{{ question.create_date }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="3">질문이 없습니다.</td>
</tr>
{% endif %}
</tbody>
</table>
<!-- 페이징처리 시작 -->
<ul class="pagination justify-content-center">
<!-- 이전페이지 -->
{% if question_list.has_previous %}
<li class="page-item">
<a class="page-link" data-page="{{ question_list.previous_page_number }}" href="#">이전</a>
</li>
{% else %}
<li class="page-item disabled">
<a class="page-link" tabindex="-1" aria-disabled="true" href="#">이전</a>
</li>
{% endif %}
<!-- 페이지리스트 -->
{% for page_number in question_list.paginator.page_range %}
{% if page_number >= question_list.number|add:-5 and page_number <= question_list.number|add:5 %}
{% if page_number == question_list.number %}
<li class="page-item active" aria-current="page">
<a class="page-link" data-page="{{ page_number }}" href="#">{{ page_number }}</a>
</li>
{% else %}
<li class="page-item">
<a class="page-link" data-page="{{ page_number }}" href="#">{{ page_number }}</a>
</li>
{% endif %}
{% endif %}
{% endfor %}
<!-- 다음페이지 -->
{% if question_list.has_next %}
<li class="page-item">
<a class="page-link" data-page="{{ question_list.next_page_number }}" href="#">다음</a>
</li>
{% else %}
<li class="page-item disabled">
<a class="page-link" tabindex="-1" aria-disabled="true" href="#">다음</a>
</li>
{% endif %}
</ul>
<!-- 페이징처리 끝 -->
<a href="{% url 'pybo:question_create' %}" class="btn btn-primary">질문 등록하기</a>
</div>
<form id="searchForm" method="get" action="{% url 'index' %}">
<input type="hidden" id="kw" name="kw" value="{{ kw|default_if_none:'' }}">
<input type="hidden" id="page" name="page" value="{{ page }}">
<input type="hidden" id="so" name="so" value="{{ so }}">
</form>
{% endblock %}
{% block script %}
<script type='text/javascript'>
$(document).ready(function(){
$(".page-link").on('click', function() {
$("#page").val($(this).data("page"));
$("#searchForm").submit();
});
$("#btn_search").on('click', function() {
$("#kw").val($(".kw").val());
$("#page").val(1); // 검색버튼을 클릭할 경우 1페이지부터 조회한다.
$("#searchForm").submit();
});
$(".so").on('change', function() {
$("#so").val($(this).val());
$("#page").val(1);
$("#searchForm").submit();
});
});
</script>
{% endblock %}
qwefghnm1212 님 504
M 2022년 1월 15일 8:54 오후
댓글 5개 더 보기...
@박응용님 안녕하세요 선생님. 확인해본 결과 서버를 실행했을때부터 vsc 터미널에서
```
[17/Jan/2022 07:14:45] "GET / HTTP/1.1" 200 10792
[17/Jan/2022 07:14:45] "GET /static/bootstrap.min.js HTTP/1.1" 404 1807
[17/Jan/2022 07:14:45] "GET /static/jquery-3.4.1.min.js HTTP/1.1" 404 1816
[17/Jan/2022 07:14:45] "GET /static/bootstrap.min.js HTTP/1.1" 404 1807
```
이런 에러가 발생했습니다. 저 파일들을 찾지 못해서 검색 기능을 사용해도 아무런 반응이 없었던거 같습니다. 이럴때는 어떻게 해야하나요?
-
qwefghnm1212님,
2022년 1월 17일 4:18 오후
추천
,
대댓글
@qwefghnm1212님 jquery-3.4.1.min.js 파일을 어느 디렉터리에 저장하셨나요? 말씀은 3.3.1 버전을 사용하신다고 하셨는데 여전히 3.4.1을 찾고 있네요.. static 디렉터리와 파일 경로등을 천천히 다시 살펴보세요.
-
박응용님,
2022년 1월 17일 4:37 오후
추천
,
대댓글
@박응용님 안녕하세요 선생님. 위에 코드는 제가 base.html에서 jquery-3.4.1.min.js 을 수정하지 않았던 상태라서 3.4.1을 계속 찾고 있었던거 같습니다.
그래서 제가 jquery-3.3.1.min.js을 작성했는데도 여전히 같은문제가 발생합니다.
```
[18/Jan/2022 07:59:12] "GET / HTTP/1.1" 200 10950
[18/Jan/2022 07:59:12] "GET /static/bootstrap.min.css HTTP/1.1" 304 0
[18/Jan/2022 07:59:12] "GET /static/style.css HTTP/1.1" 304 0
[18/Jan/2022 07:59:12] "GET /static/bootstrap.min.js HTTP/1.1" 404 1807
[18/Jan/2022 07:59:12] "GET /static/jquery-3.3.1.min.js HTTP/1.1" 404 1816
[18/Jan/2022 07:59:12] "GET /static/bootstrap.min.js HTTP/1.1" 404 1807
```
그래서 jquery-3.4.1.min.js의 위치를 확인해본 결과 /Applications/mampstack-8.0.10-1/frameworks/zendframework/public/js 이 위치에 존재합니다 또한 static에서 jquery-3.3.1.min.js 을 찾아 보았으나 역시 존재하지 않습니다. 그러면 이제 jquery-3.3.1.min.js 이 파일을 static으로 옮겨줘야 할 것 같은데 어떻게 하면 좋을까요?? 항상 신경써주셔서 감사합니다.
-
qwefghnm1212님,
2022년 1월 18일 5:12 오후
추천
,
대댓글
+1
@qwefghnm1212님 책에서 안내하는데로 처음부터 진행하지 않으신것 같습니다. 앞 부분부터 차례대로 진행하시는 것을 추천드립니다. 어디서부터 잘못되어 있는지 가늠하기 힘드네요.
-
박응용님,
2022년 1월 18일 5:39 오후
추천
,
대댓글
@박응용님 알겠습니다.
-
qwefghnm1212님,
2022년 1월 18일 6:46 오후
추천
,
대댓글