php 와 javascript 질문 드려요
본문
제가 아직 초보라 인터넷뒤지면서 만들고 있는데 해결이 안되서 질문 드립니다.
telecom 테이블에서 t_yn이 Y인것을 불러와서 3개 값을 표시하고 기본으로 3개의 값중 맨 처음 값에 빨간색으로 선택되어 있게 만들었습니다.
그리고 3개의 버튼을 누를때마다 jquery로 넘겨서 ca_id1에 제가 버튼을 누른 값이 들어가게 하면서 ca_id1에 들어간 값이 현재페이지에 적용되게 했는데요.
여기서부터 문제가 발생했습니다.
var f = document.fphone; 이 값을 넣으면 ca_id1에 값도 들어가고 현재페이지에 적용도 되고 active로 지정된 버튼도 빨간색으로 유지되는데 새로고침이 되서 다른값들이 초기화가 됩니다...
그렇다고 var f = document.fphone; 이걸 없애면 새로고침은 안되고 ca_id1에 값은 들어가지만 현재페이지에 값이 적용이 안되구요.
새로고침이 되도 다른값들의 초기화가 안되게 하는게 가장 간단하게 해결할 방법 같은데... 어떻게 코드를 짜야 초기화가 안되는건지 도통 모르겠어요...
이 방법이 아니라 다른 방법이 있으면 그 방법이라도 조금이라도 도움좀 부탁드립니다...
<?php
$sql2 = "select idx, t_name from ".$g5['telecom_table']." where t_yn = 'Y' order by idx asc limit 3";
$que2 = sql_query($sql2);
while ($row2 = sql_fetch_array($que2)) {
$view_idx = $row2['idx'];
$view_t_name = $row2['t_name']; ?>
<a href="javascript:menu_select_01_1('<?=$view_idx?>', '<?=$view_t_name?>');"<? if ($view_idx == $ca_id1) { ?>class="active"<? } ?> ><?=$view_t_name?></a>
<?php
}
?>
function menu_select_01_1(ca_id, ca_name) {
   var f = document.fphone;
    $("#ca_id1").val(ca_id);
    $("#ca_name1").val(ca_name);
    $("#menu_result_01").html(ca_name);
    $("#menu_result_mobile_01").html(ca_name);
    $("#m-search-list1").hide();
   f.submit();
}
<? if ($mode != "main") { ?>
<form name="fphone" id="fphone" method="post" action="#">
    <input type="hidden" name="ca_id1" id="ca_id1" value="<?=$ca_id1?>" />
    <input type="hidden" name="ca_id2" id="ca_id2" value="<?=$ca_id2?>" />
    <input type="hidden" name="ca_id3" id="ca_id3" value="<?=$ca_id3?>" />
    <input type="hidden" name="ca_name1" id="ca_name1" value="<?=$ca_name1?>" />
    <input type="hidden" name="ca_name2" id="ca_name2" value="<?=$ca_name2?>" />
    <input type="hidden" name="ca_name3" id="ca_name3" value="<?=$ca_name3?>" />
</form>
<? } ?>
답변 2
질문의 내용을 이해하기가 많이 어려워서.. 맞게 이해했는지 잘 모르겠습니다.
#수정 1.
<a href="javascript:menu_select_01_1('<?=$view_idx?>', '<?=$view_t_name?>');"<? if ($view_idx == $ca_id1) { ?>class="active"<? } ?> ><?=$view_t_name?></a>
->
<a href="javascript:menu_select_01_1('<?=$view_idx?>', '<?=$view_t_name?>', this);"<? if ($view_idx == $ca_id1) { ?>class="active"<? } ?> ><?=$view_t_name?></a>
#수정 2
function menu_select_01_1(ca_id, ca_name) {
   var f = document.fphone;
    $("#ca_id1").val(ca_id);
    $("#ca_name1").val(ca_name);
    $("#menu_result_01").html(ca_name);
    $("#menu_result_mobile_01").html(ca_name);
    $("#m-search-list1").hide();
   f.submit();
}
->
function menu_select_01_1(ca_id, ca_name, el) {   
  $(el).removeClass().addClass('active');
  $("#ca_id1").val(ca_id);
  $("#ca_name1").val(ca_name);
  $("#menu_result_01").html(ca_name);
  $("#menu_result_mobile_01").html(ca_name);
  $("#m-search-list1").hide();  
}
ca_id1을 변경하려고 form으로 페이지를 다시 호출하는 이유가 뭔가요?
(a 태그에 active 클래스를 추가하기 위해서 인가요? )
하시려는 것이 페이지에서 선택사항을 선택해서 어딘가 처리하는 페이지로 보내려고 하시나요?
