글 작성시 본문 내 엘리먼트 수를 여분 필드로 전달/입력 방법을 문의드립니다.

글 작성시 본문 내 엘리먼트 수를 여분 필드로 전달/입력 방법을 문의드립니다.

QA

글 작성시 본문 내 엘리먼트 수를 여분 필드로 전달/입력 방법을 문의드립니다.

본문

 

아래와 같이 게시판 본문에 입력한 li 개수를 파악해서 여분 필드(예.wr_1)로 가져와 사용하려고 합니다.

분문안에 li개수가 수정될때 마다 변경된 li 개수가 여분필드에 업데이트 되어야 할거 같은데 한참을 찾아보고 개수까지는 얻겠는데 여분필드로 전달이 쉽지가 않네요.;; 어떻게 접근해야 할지. 가르침을 부탁 드리겠습니다.

 


<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
 
<?php
$html=$view['content'];
$dom = new DOMDocument;
$dom->loadHTML($html);
$result = $dom->getElementsByTagName('li')->length;// "prints" 5
$view['wr_1'] = $result;
echo $view['wr_1'];
?>

이 질문에 댓글 쓰기 :

답변 8

$html=$view['content'];
$dom = new DOMDocument;
$dom->loadHTML($html);
$result = $dom->getElementsByTagName('li')->length;// "prints" 5
$view['wr_1'] = $result;
echo $view['wr_1'];

뷰페이지라면 저부분 하단에 아래와 같이 하시면 될거 같습니다.


$sql = "update ".$write_table." set wr_1 = '".$view['wr_1']."' where wr_id = '".$wr_id."'";

sql_query($sql);

특정 부모 태그를 explode 로 추출한 다음에 preg_match_all 정규식으로 수집한다음 집어넣는게 낫지 않을까요?
 


$write_table=$g5['write_prefix'].$bo_table;
$upsql = "UPDATE {$write_table} set wr_1 = '{$dom->getElementsByTagName('li')->length}' where wr_id = '{$wr_id}' ";
sql_query($upsql);

알려주신 부분을 어디에 적용해 보면 될까요?
다른 분 질문에 답글 주신것처럼 write_update.skin.php 에 저장해야 할까요?
요렇게 저렇게 적용해 보는데 여분필드에 들어가지 않아서;;;
조금 더 길을 안내 부탁 드려도 될까요?
답변 주셔서 감사합니다.

만약 제이쿼리 사용이 가능하다면


<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
<script type="text/javascript">
    $(document).ready(function(){
        lilength = $('ul').find('li').length;
        alert(lilength);
    });
</script>

 

이런식으로 간단하게 표현 가능합니다.

만약 ul 이 다수라면 해당 ul 에 클래스를 부여하시고

lilength = $('.ul클래스').find('li').length;

 

이런식으로도 가능합니다.

네 이방법으로 해보다가 php로 방향을 잡은게
li 숫자를 가져오는것으로 끝나는게 아니라
li 수를 여분 필드로 가져가서 저장하는게 중요해서요.
답변 주셔서 감사 합니다.

view 단에서 어떤 과정에 의하여 li 개수가 변경된다면

ajax 호출로 제어가 가능합니다.

헌데 질문글 자체가 view 단에서 li 가 변경될때 어떤 액티비티 요소가 있는지 설명이 안되어있군요...

제가 질문을 정확하게 드리지 못한거 같습니다.
게시물 작성되면서 게시물에 포함된 li의 개수를 가져와서
여분필드에 담기고 또 이미 작성된 게시물이 수정되어 개수가 변할 경우에도
반영이 되었으면 하는건데.다른 방법이 있을까요?

앞뒤 내용을 모르니 엉뚱한 답을 드릴 수 있겠습니다.

==

아래와 같이 게시판 본문에 입력한 li 개수를 파악해서 여분 필드(예.wr_1)로 가져와 사용하려고 합니다.

분문안에 li개수가 수정될때 마다 

==

변경 된다는 것이

게시물(글)을 수정한다는 뜻인지 -- A

아니면 view 페이지에서 마우스 클릭을 해서 변경된다는 것인 -- B

지에 따라 방법이 다릅니다.

 

A라면 write_update.tail.skin.php 등에서 li 갯수를 세면 될 것이고

B라면 마우스 클릭 같은 event에서 ajax로 DB update하시면 되겠네요.

 

제가 질문을 정확하게 드리지 못한거 같습니다.
게시물 작성되면서 게시물에 포함된 li의 개수를 가져와서
여분필드에 담기고 또 이미 작성된 게시물이 수정되어 개수가 변할 경우
에도
반영이 되었으면 하는건데.다른 방법이 있을까요?

 

최초 제이쿼리로 제안해드린 방법이 위와 같을경우를 산정해서 말씀드린거에요.

어차피 최초 글작성이랑 이후 글 수정모두 write.php 를 거치게됩니다.

굳이 매번 view 페이지에 들어올때마다 쿼리를 날려 채크할 필요가 없습니다.

li 변화는 wirte 에서만 적용되니까요

 

여전히 write 에서 li 개수가 어떤식으로 계산되고 변화하는지 알려주시지 않으셨지만

해당 li 를 추가하거나 감소 시킬때 위 스크립트를 사용하면 되는겁니다.

 

굳이 저장 이후에 해도 되는걸

수정이나 글작성시 쓸데없는 쿼리를 날리는 의도를 정확하게 모르겠습니다.

 

어떤 요소에 의하여 li 개체수가 변화한다면

제가 제안해드린 스크립트를 onload 가 아닌 해당 스크립트 호출시 함께 넣어주셔도 되는거구요

 

요약.

li 개체수가 wirte 에서 정의/변경 된다면 view 단이 아닌 write 에서 계산하는게 더 이득이다.

jquery로는 뭔가 어렵고 복잡해 보이고 php쪽으로 푸는게 나아 보여서 그랬던거 같습니다.
올려주신 글들을 보고 또 배우게 됩니다. 제 무지함으로 마음 상하지 않으셨으면 합니다.
관심 가져주셔서 감사합니다.

substr_count() 이 함수를 이용해서
https://www.php.net/manual/en/function.substr-count.php

write_update.tail.skin.php 등에서
$li_count= substr_count( $wr_content, '<li>');
sql_query( "update {$write_table} set wr_1='$li_count' where wr_id='$wr_id' ");
이렇게 하면 되겠네요.

여전히 앞뒤 내용을 모르니 엉뚱한 답이 될 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT