미채택 완료

select 박스 선택시 span 노출에서

2022-12-25 (일) 20:32:37 1,708

select 박스 선택시 span id='wage1' 하고 span id='wage2' 를 선택노출 하도록 했는데

노출은 잘 되는데 변수값이 $spt_wage_start, $spt_wage_end 에 중복입력 되는 것 같습니다

최종적으로는 $spt_wage_start, $spt_wage_end 변수에 값이 들어가야 하는데

두개의 span문에서 변수값이 다르게 $spt_wage_start, $spt_wage_end 변수에 들어가려면 

어떻게 해야 할까요? 고수님들 부탁드립니다 

<span id='wage1' style='display:none'><input class="inputbox" style="width:100px;" name="spt_wage_start" id="spt_wage_start" itemname="급여선택"  value="<?php echo $spt_wage_start; ?>">&nbsp;원&nbsp;&nbsp;~&nbsp;
            <input class="inputbox" style="width:100px;" name="spt_wage_end" id="spt_wage_end" itemname="급여선택"  value="<?php echo $spt_wage_end; ?>">&nbsp;원&nbsp;&nbsp;</span>
            <span id='wage2' style='display:none'><input class="inputbox" style="width:100px;" name="spt_wage_start" id="spt_wage_start" itemname="급여선택"  value="<?php echo $spt_wage_start; ?>">&nbsp;만원&nbsp;&nbsp;~&nbsp;
            <input class="inputbox" style="width:100px;" name="spt_wage_end" id="spt_wage_end" itemname="급여선택"  value="<?php echo $spt_wage_end; ?>">&nbsp;만원&nbsp;&nbsp;</span>

답변 3개 / 댓글 3개

2022-12-26 (월) 11:23:06

이전에 올리신 소스를 봐서 그런지 그 소스에 맞게요.

여분필드가 3개 필요합니다.

게시판 여분필드라고 가정했을 때

Copy
<select id="wr_1" name="wr_1">
    <option style="display:none">선택하세요</option>
    <option>시급</option>
    <option>일당</option>
    <option>월급</option>
    <option>연봉</option>
</select>
<input id="wr_2" name="wr_2" value="<?php echo $write['wr_2']; ?>"> <span id="my_2"></span>
~
<input id="wr_3" name="wr_3" value="<?php echo $write['wr_3']; ?>"> <span id="my_3"></span>
<script>
wr_1.onchange = function() {
   my_2.innerText = my_3.innerText = (wr_1.value === "월급" || wr_1.value === "연봉") ? "만원" : "원";
}
wr_1.value = "<?php echo $write['wr_1']; ?>";
wr_1.onchange();
</script>

참고 - https://cafe.daum.net/gnuworld/ZJsu/3

간단하게는 이렇게 중복이 없도록 구성하는 방법이 있습니다.

<span id='wage1' style='display:none'>
    <input class="inputbox" style="width:100px;" name="spt_wage_start_1" id="spt_wage_start_1" itemname="급여선택"  value="<?php echo $spt_wage_start_1; ?>"> 원  ~ 
    <input class="inputbox" style="width:100px;" name="spt_wage_end_1" id="spt_wage_end_1" itemname="급여선택"  value="<?php echo $spt_wage_end_1; ?>"> 원  
</span>

<span id='wage2' style='display:none'>
    <input class="inputbox" style="width:100px;" name="spt_wage_start_2" id="spt_wage_start_2" itemname="급여선택"  value="<?php echo $spt_wage_start_2; ?>"> 만원  ~ 
    <input class="inputbox" style="width:100px;" name="spt_wage_end_2" id="spt_wage_end_2" itemname="급여선택"  value="<?php echo $spt_wage_end_2; ?>"> 만원  
</span>

답변에 대한 댓글 3개

($spt_wage_end_1 , $spt_wage_end_1) 와

($spt_wage_start_2 , $spt_wage_end_2)를 중복없이

최종적으로는 $spt_wage_start, $spt_wage_end 변수에 다시 집어 넣을 수 없을까요?
무슨 말인지 이해가 잘 안가는데
혹시 이런걸 말씀하시는 건가요?
[code]
<?php
$spt_wage_start_1 = 11;
$spt_wage_end_1 = 19;
$spt_wage_start_2 = 21;
$spt_wage_end_2 = 29;

$spt_wage_start = [$spt_wage_start_1, $spt_wage_start_2];
$spt_wage_end = [$spt_wage_end_1, $spt_wage_end_2];

$user_vars = get_defined_vars();
$user_vars = array_slice($user_vars, -6);

print_r($user_vars);
/*
Array
(
[spt_wage_start_1] => 11
[spt_wage_end_1] => 19
[spt_wage_start_2] => 21
[spt_wage_end_2] => 29
[spt_wage_start] => Array
(
[0] => 11
[1] => 21
)

[spt_wage_end] => Array
(
[0] => 19
[1] => 29
)

)
*/
?>
[/code]
답변 너무 고맙습니다

제가 원하는 결과물은

span id='wage1 이 선택되고

$spt_wage_start = $spt_wage_end_1
$spt_wage_end = $spt_wage_end_1

이렇게 변수에 입력되고

span id='wage2 는 실행이 되지 않는 것 입니다

그러나 질문내용 소스는 실행이 되는 거 같아요

span id='wage1 때 입력값들을 지우고
span id='wage2 에서 다시

$spt_wage_start = $spt_wage_end_2
$spt_wage_end = $spt_wage_end_2

이렇게 중복으로 변수에 입력되는 거 같습니다

실행 결과물에서

$spt_wage_start = $spt_wage_end_1
$spt_wage_end = $spt_wage_end_1 은 출력이 안되고

$spt_wage_start = $spt_wage_end_2
$spt_wage_end = $spt_wage_end_2 은 출력이 됩니다

span id='wage1 때는 span id='wage2 실행이 안되고

span id='wage2 때는 span id='wage1는 실행이 안되어

최종적으로는 $spt_wage_start, $spt_wage_end 변수에 값이

중복되지 않게 입력되게 하는 조건문이 생각이 나지 않네요
2022-12-25 (일) 20:38:14

<span id='wage1' style='display:none'> 의  id="spt_wage_start" 와
<span id='wage2' style='display:none'> 의  id="spt_wage_start" 아이디가 중복되어 있어서 오류가 날 것입니다.

 id="spt_wage_end" 도 마찬가지로 wage1, wage2 의 아이디가 고유하게 해야 합니다.
아이디는 중복되면 오류가 납니다.

name 도 중복되어 있는것 같네요...

네임으로 찾아가도록 했다면 아마 문제가 될 것입니다.

아이디 대신에 class 명으로 찾아가도록 하면 문제가 해결 될 수도 있을 것입니다.

답변을 작성하려면 로그인이 필요합니다.