readonly 사용방법좀 문의드립니다... ㅠㅠ 정보
readonly 사용방법좀 문의드립니다... ㅠㅠ본문
여러명이서 게시글 하나를 수정해서 작성하는 게시판을 만들었는데요
최초 생성자가 게시글을 작성하면 다른 사용자가 수정을 눌러서 다음 내용을 작성합니다
그런데 처음 작성한 사람의 내용도 수정이 가능하게 되버리는데 처음 작성한 내용은 수정 못하게 할수있을까요?
처음작성자는 wr_1 ~ wr_4 사용
다름사용자는 wr_5 ~ wr_8 사용
이런식으로 구성했습니다
그런데 문의해서 답을 찾기는 했습니다...
- 소스 구성(예) -
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
?>
<input type=text name=wr_1 value='<?=$write[wr_1]?>' <?=$readonly?>>
<input type=text name=wr_2 value='<?=$write[wr_2?>' <?=$readonly?>>
<input type=text name=wr_3 value='<?=$write[wr_3?>' <?=$readonly?>>
<input type=text name=wr_4 value='<?=$write[wr_4?>' <?=$readonly?>>
이런식으로 하니 처음 작성자가 쓴글은 수정이 안되는데 다음 사용자가 입력할려는 칸까지 입력이 안되네요...
- 다음 사용자 입력칸 -
<input type=text name=wr_5 value='<?=$write[wr_5?>' <?=$readonly?>>
<input type=text name=wr_6 value='<?=$write[wr_6?>' <?=$readonly?>>
어떻게 해야 할까요... ㅠㅠ
또한가지 셀렉트문도 readonly 시키고 싶은데 이건또 어떻게 하는건지.... ㅜ.ㅜ
<select name='wr_7' itemname="작업자" style="border:0px; word-break:break-all; font-size:8pt;" >
<option value='' <? if($write[wr_] == 선택) echo " selected "; ?>>작업자선택
<option value='양승록' <? if($write[wr_7] == 양승록) echo " selected "; ?>>양승록
<option value='김예랑' <? if($write[wr_7] == 김예랑) echo " selected "; ?>>김예랑
</select>
이것도 풀어주시면 형님으로 모시겠습니다!
최초 생성자가 게시글을 작성하면 다른 사용자가 수정을 눌러서 다음 내용을 작성합니다
그런데 처음 작성한 사람의 내용도 수정이 가능하게 되버리는데 처음 작성한 내용은 수정 못하게 할수있을까요?
처음작성자는 wr_1 ~ wr_4 사용
다름사용자는 wr_5 ~ wr_8 사용
이런식으로 구성했습니다
그런데 문의해서 답을 찾기는 했습니다...
- 소스 구성(예) -
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
?>
<input type=text name=wr_1 value='<?=$write[wr_1]?>' <?=$readonly?>>
<input type=text name=wr_2 value='<?=$write[wr_2?>' <?=$readonly?>>
<input type=text name=wr_3 value='<?=$write[wr_3?>' <?=$readonly?>>
<input type=text name=wr_4 value='<?=$write[wr_4?>' <?=$readonly?>>
이런식으로 하니 처음 작성자가 쓴글은 수정이 안되는데 다음 사용자가 입력할려는 칸까지 입력이 안되네요...
- 다음 사용자 입력칸 -
<input type=text name=wr_5 value='<?=$write[wr_5?>' <?=$readonly?>>
<input type=text name=wr_6 value='<?=$write[wr_6?>' <?=$readonly?>>
어떻게 해야 할까요... ㅠㅠ
또한가지 셀렉트문도 readonly 시키고 싶은데 이건또 어떻게 하는건지.... ㅜ.ㅜ
<select name='wr_7' itemname="작업자" style="border:0px; word-break:break-all; font-size:8pt;" >
<option value='' <? if($write[wr_] == 선택) echo " selected "; ?>>작업자선택
<option value='양승록' <? if($write[wr_7] == 양승록) echo " selected "; ?>>양승록
<option value='김예랑' <? if($write[wr_7] == 김예랑) echo " selected "; ?>>김예랑
</select>
이것도 풀어주시면 형님으로 모시겠습니다!
댓글 전체

흠... 일단 원하시는게 맞는지는 모르지만 코딩한번 수정하고 갈께요~~~^^ 느낌아니까~~
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
<input type=text name=wr_1 value='<?=$write[wr_1]?>' <?=$readonly?>>
<input type=text name=wr_2 value='<?=$write[wr_2]?>' <?=$readonly?>>
<input type=text name=wr_3 value='<?=$write[wr_3]?>' <?=$readonly?>>
<input type=text name=wr_4 value='<?=$write[wr_4]?>' <?=$readonly?>>
다음 사용자 입력칸을 출력하기 전에 한번더 조건을 넣어주세요~
이번에는 처음작성자와 로그인 사용자가 같다면 다음작성자 입력칸을 입력못하도록
<?
if($w=='u' && $write[mb_id]==$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
<input type=text name=wr_5 value='<?=$write[wr_5]?>' <?=$readonly?>>
<input type=text name=wr_6 value='<?=$write[wr_6]?>' <?=$readonly?>>
<input type=text name=wr_7 value='<?=$write[wr_7]?>' <?=$readonly?>>
<input type=text name=wr_8 value='<?=$write[wr_8]?>' <?=$readonly?>>
그리고 select 박스를 readonly하고 싶다고 하셨는데 select 박스는 readonly를 지원하지 않습니다.
따라서, 조건을 두어 이미 작업자가 등록된 경우에는 input 박스로 표시를 하는게 어떤가 쉽네요~
<?
if($write[wr_7]=="") {
?>
<select name='wr_7' itemname="작업자" style="border:0px; word-break:break-all; font-size:8pt;" >
<option value=''>작업자선택
<option value='양승록'>양승록
<option value='김예랑'>김예랑
</select>
<?
} else {
?>
<input type="text" name="wr_7" value="<?=$write[wr_7]?>" readonly/>
<? } ?>
그럼 ~~
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
<input type=text name=wr_1 value='<?=$write[wr_1]?>' <?=$readonly?>>
<input type=text name=wr_2 value='<?=$write[wr_2]?>' <?=$readonly?>>
<input type=text name=wr_3 value='<?=$write[wr_3]?>' <?=$readonly?>>
<input type=text name=wr_4 value='<?=$write[wr_4]?>' <?=$readonly?>>
다음 사용자 입력칸을 출력하기 전에 한번더 조건을 넣어주세요~
이번에는 처음작성자와 로그인 사용자가 같다면 다음작성자 입력칸을 입력못하도록
<?
if($w=='u' && $write[mb_id]==$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
<input type=text name=wr_5 value='<?=$write[wr_5]?>' <?=$readonly?>>
<input type=text name=wr_6 value='<?=$write[wr_6]?>' <?=$readonly?>>
<input type=text name=wr_7 value='<?=$write[wr_7]?>' <?=$readonly?>>
<input type=text name=wr_8 value='<?=$write[wr_8]?>' <?=$readonly?>>
그리고 select 박스를 readonly하고 싶다고 하셨는데 select 박스는 readonly를 지원하지 않습니다.
따라서, 조건을 두어 이미 작업자가 등록된 경우에는 input 박스로 표시를 하는게 어떤가 쉽네요~
<?
if($write[wr_7]=="") {
?>
<select name='wr_7' itemname="작업자" style="border:0px; word-break:break-all; font-size:8pt;" >
<option value=''>작업자선택
<option value='양승록'>양승록
<option value='김예랑'>김예랑
</select>
<?
} else {
?>
<input type="text" name="wr_7" value="<?=$write[wr_7]?>" readonly/>
<? } ?>
그럼 ~~
강한남v 님 고맙습니다... ㅠㅠ
그런데 한가지 문제점이 있어요...
처음 wr_1 ~ wr_4 까지
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
이걸로
다음 wr_5 ~ wr_8 까지는
<?
if($w=='u' && $write[mb_id]==$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
로 하면 되는데
세번째 사용자는 또 문제가 발생하네요... ㅠㅠ 1번은 수정안되나 2번이 수정됨....
에궁 너무 머리아프네요 ㅠㅠ
그런데 한가지 문제점이 있어요...
처음 wr_1 ~ wr_4 까지
<?
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
이걸로
다음 wr_5 ~ wr_8 까지는
<?
if($w=='u' && $write[mb_id]==$member[mb_id]) $readonly='readonly';
else $readonly='';
?>
로 하면 되는데
세번째 사용자는 또 문제가 발생하네요... ㅠㅠ 1번은 수정안되나 2번이 수정됨....
에궁 너무 머리아프네요 ㅠㅠ

세번째 사용자라... 흠... 프로그램 기능을 어떻게 구현을 하고 싶으신지 정확히 좀 알려주세요~
전 두명의 사용자만 생각한거라... 사용자가 무제한인가요??
다수의 사람이 작성을 한다면 DB필드도 부족할텐데...
정확히 어떤한 기능을 구현하고자 하는지 알려주시면 답변 드리겠습니다.
아~ 혹시 단순히 최초 작성자가 쓴글을 다른사람에게만 보여주고 다음 작성자는 그 글에 이어서 글을 작성하는 형태로 하신다면 굳히 여분의 필드를 사용하기보다 최초 작성한 사람의 글을 임이의변수($content_org)로 저장해서 다음 작성자에게는 보여주기만 하고 수정을 위해서 이전내용이 넘어가도록 form에 input object 선언해주시고 다음 작성자가 작성한 글 앞($content)에 붙혀서 내용을 계속 업데이트를 해주면 되지 않을까요??
설명이 어려운가용??
전 두명의 사용자만 생각한거라... 사용자가 무제한인가요??
다수의 사람이 작성을 한다면 DB필드도 부족할텐데...
정확히 어떤한 기능을 구현하고자 하는지 알려주시면 답변 드리겠습니다.
아~ 혹시 단순히 최초 작성자가 쓴글을 다른사람에게만 보여주고 다음 작성자는 그 글에 이어서 글을 작성하는 형태로 하신다면 굳히 여분의 필드를 사용하기보다 최초 작성한 사람의 글을 임이의변수($content_org)로 저장해서 다음 작성자에게는 보여주기만 하고 수정을 위해서 이전내용이 넘어가도록 form에 input object 선언해주시고 다음 작성자가 작성한 글 앞($content)에 붙혀서 내용을 계속 업데이트를 해주면 되지 않을까요??
설명이 어려운가용??
에구 구성할려는 시스템을 설명드리고 문의드렸어야 하는데 제 생각이 짧았네요...
제가 구성할려는 시스템은 어느 제품에 대한 검사성적서를 종이에 적어서 관리하는걸 작업자 마다 pc를 활용해서 작성할는 겁니다..
한제품을 검사하는데 글쓰기 버튼을 눌러서 제품명을 적고 검사하는 공정마다 검사자가 제품명을 보고 수정을 눌러서 자신이 하는 공정을 입력하는 방식을 구성할려고 하거든요
다른 사용자가 입력한걸 실수로 수정할거 같아서 다른사람이 작성한 내용은 수정 못하도록 하고 싶습니다...
제가 구성할려는 시스템은 어느 제품에 대한 검사성적서를 종이에 적어서 관리하는걸 작업자 마다 pc를 활용해서 작성할는 겁니다..
한제품을 검사하는데 글쓰기 버튼을 눌러서 제품명을 적고 검사하는 공정마다 검사자가 제품명을 보고 수정을 눌러서 자신이 하는 공정을 입력하는 방식을 구성할려고 하거든요
다른 사용자가 입력한걸 실수로 수정할거 같아서 다른사람이 작성한 내용은 수정 못하도록 하고 싶습니다...

그렇다면 코멘트를 활용해서 스킨을 좀 수정해서 각 공정의 담당자가 코멘트로 자신의 공정내용을 적는게 낫지 않을까요? 코멘트로 적는다면 자신의 글만 수정이 가능할테고 굳히 작업자를 선택하지 않더라도 코멘트를 쓴 사람이 곧 작업자이므로 더 쉽게 구성할 수 있을 것 같은데요~!
제가 무식하게 필드를 200개 넘게 만들어서 구성했거든요...
사용자는 대략 20명이고요...
댓글로 설명해 주신 내용을 실천하기에는 제 머리가 286 pc네요.. ㅠㅠ
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly'; 를 수정하면 간단하게 될듯 했는데 생각보다 많이 어렵네요 ㅠㅠ
사용자는 대략 20명이고요...
댓글로 설명해 주신 내용을 실천하기에는 제 머리가 286 pc네요.. ㅠㅠ
if($w=='u' && $write[mb_id]!=$member[mb_id]) $readonly='readonly'; 를 수정하면 간단하게 될듯 했는데 생각보다 많이 어렵네요 ㅠㅠ

작성자가 여러명이기 때문에 write[mb_id]로만 현재 로그인한 사람과 기존 작성자를 확인을 하는건 어렵습니다.
제가 알기로 mb_id는 무조건 최초 사용자로 기록되는걸로 알고 있는데...
제가 알기로 mb_id는 무조건 최초 사용자로 기록되는걸로 알고 있는데...
그러면 mb_id가 아닌 다른 필드에 사용자별로 값을주고 최초값이랑 다르면 수정못하게 할수있을까요?
처음부터 그렇게 질문을 해야죠
방법은 댓글(comment)로 등록하는 방법과 별도의 테이블(게시판이 아님)을 생성해서 검사성적을 등록하는 방법이 있는데 질문으로 보아 직접 작업하기는 불가능하겠군요
검사성적을 등록하는 사람 이름/ 아이디가 별도로 저장될 필요는 없다는 말인가요?
검사자가 누구인지 구분해야 한다면 필드를 추가해서 하는 방법은 아주 복잡하게 됩니다
검사자 등록이 필요 없다고 한다면 필드를 200개나 추가해서 할 필요 없이
검사자수 만큼만 만들고 성적을 합쳐서 하나의 필드에 넣고 나중에 분리해서 출력하는 방법이 있겠지만
검사자가 자신의 기록을 수정.삭제 할 수 있어야 하니 추가필드로 하는 방법은 불가능합니다
검사성적을 합치거나 평균을 낸다거나 다른 조작이 필요하다면 성적 등록 테이블을 따로 만드는 것이 정상적인 방법입니다
방법은 댓글(comment)로 등록하는 방법과 별도의 테이블(게시판이 아님)을 생성해서 검사성적을 등록하는 방법이 있는데 질문으로 보아 직접 작업하기는 불가능하겠군요
검사성적을 등록하는 사람 이름/ 아이디가 별도로 저장될 필요는 없다는 말인가요?
검사자가 누구인지 구분해야 한다면 필드를 추가해서 하는 방법은 아주 복잡하게 됩니다
검사자 등록이 필요 없다고 한다면 필드를 200개나 추가해서 할 필요 없이
검사자수 만큼만 만들고 성적을 합쳐서 하나의 필드에 넣고 나중에 분리해서 출력하는 방법이 있겠지만
검사자가 자신의 기록을 수정.삭제 할 수 있어야 하니 추가필드로 하는 방법은 불가능합니다
검사성적을 합치거나 평균을 낸다거나 다른 조작이 필요하다면 성적 등록 테이블을 따로 만드는 것이 정상적인 방법입니다