#1. Console.log()로 먼저 데이터 확인해보기.
0: {bucket: '데이터전송', done: 0, num: 1}
- - -
4: {bucket: '돈벌기', done: 0, num: 5}
length: 5
let bucket = $('#bucket').val()
들어간 내용 살펴보면 - row의 순서: { 'bucket'=bucket_receiver ;; 'num' = count ;; 'done' = 0}
'$('#bucket').val() : id = bucket 이라는 html 항목에 입력된 값을 bucket이라고 정의해서 이 값을
$.ajax({
type: "POST",
url: "/bucket",
data: {bucket_give:bucket},
success: function (response) {
alert(response["msg"])
window.location.reload()
}
});
data: {bucket_give: bucket} -> data에 bucket_give에 넣는다.
@app.route("/bucket", methods=["POST"])
def bucket_post():
bucket_receive = request.form['bucket_give']
bucket_list = list(db.bucket.find({},{'_id':False}))
count = len(bucket_list) + 1
doc = {
'num':count,
'bucket':bucket_receive,
'done':0}
db.bucket.insert_one(doc)
return jsonify({'msg': '등록 완료!'})
이 bucket_give는 request.form[]에 들어가서 bucket_receive로 출력이 되고.
doc = { 여기에 'bucket'이라고 다시 정의된다 = bucket_receive }
그래서 결국
num, bucket, done이라고 나타나는 건 이 def bucket_post()를 통해 POST로 들어간 저장 내용이 나타나게 되는 것.
#1. 내가 HTML에 쓴 내용이
#2. 일단 ajax로 들어가기 위해 정의 됨. let bucket = $ ~. val
#3. 이 버켓을 $.ajax로 POST에 보내는데 그 형식을 bucket_give로 전달. (bucket_give:bucket)
#4. 이 bucket_give 값을 @app.route로 mongoDB에 request form으로 bucket_receive로 받아서 넣어줘야됨.
#5. 이걸 넣으면 list 형태로 들어가는데 각각에 대한 번호를 매겨주려면, 일단 bucket_list를 가져오고
#6. 그 수를 count해서 거기 +1로 number를 부여
#7. doc ={} 해서 이 내용을 db.bucket.insert_one(doc)로 여러개 내용을 동시에 넣을 수 있음.
#8. 마지막에 꼭 return 함수를 넣어줘야 그 함수가 마무리 되니 잊지 말것.
----------------------------------------------------------------------------------------------------------------------------
여기서 GET 할 내용들은 bucket, num, done --> 얘네를 어디에 붙여? <div id-"bucket-list"> 안의 <li>로 넣어줘야되.
근데 그 양식은? 뒤의 내용만
그래서 rows의 i 번째의 bucket / num / done 을 각각 따로 정의 해주자.
function show_bucket() {
$.ajax({
type: "GET",
url: "/bucket",
data: {},
success: function (response) {
let rows = response['buckets']
for (let i = 0; i < rows.length; i++){
let bucket = rows[i]['bucket']
let num = rows[i]['num']
let done = rows[i]['done']
}
}
});
}
근데 완료 안한 애들과 한 애들이 다르다.
완료를 안했으면 완료! button이 존재.
완료 했으면 완료!button 삭제.
--> onclick="done_bucket()" 여기에 () 안에 bucket number가 들어가야된다!!!
success: function (response) {
let rows = response['buckets']
for (let i = 0; i < rows.length; i++){
let bucket = rows[i]['bucket']
let num = rows[i]['num']
let done = rows[i]['done']
let temp_html=``
if (done == 0) {
temp_html = ` <li>
<h2>✅ ${bucket}</h2>
<button onclick="done_bucket(${num})" type="button" class="btn btn-outline-primary">완료!</button>
</li>`
} else {
temp_html=` <li>
<h2 class="done">✅ ${bucket}</h2>
</li>`
}
$('#bucket-list').append(temp_html)
}
}
여기서 보면, bucket, num, done을 정의 해줬고, row 순서대로 이제 넣을 거야. 그래서 temp_html을 설정 하고
거기서 완료를 안했으면 button이 나와야되니 if 문으로 done == 0 일 경우 button 표시
else의 경우 button X --> 이걸 #bucket-list에 append(temp_html) 해주면 된다.
===========================================================================
이제 진짜 마지막! 완료 버튼 눌렀을 때 done으로 표시하게 하기!!
'개발자 일지' 카테고리의 다른 글
Javascript -JQUERY 입문 (0) | 2022.01.04 |
---|---|
4주차 - 화성땅 공동구매 (0) | 2021.12.29 |
웹개발종합반, 3주차 (0) | 2021.12.28 |
3주차, 개발자일지(1) (0) | 2021.12.28 |
Javascript 기초정리 // 2주차 jquery 연습 (0) | 2021.12.27 |
댓글