php 와 javascript 질문 드려요

php 와 javascript 질문 드려요

QA

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 클래스를 추가하기 위해서 인가요? )

하시려는 것이 페이지에서 선택사항을 선택해서 어딘가 처리하는 페이지로 보내려고 하시나요?

 

음 이게 화면을 보고 코드를 보면 간단한데 설명으로 하려니 복잡해지네요.
제가 하려는건 ca_id1에 들어있는 값이 1이라고 하고 이값에 의해 ph_type에 들어있는 "가","나"의 2개의 값이 정해지는 구조입니다. 1이면 가, 2이면 나 이렇게 정해지는데 제 실력으로는 ca_id1값을 변경하려면 다시 호출하는 방식밖에 몰라서 다시 호출을 한건데 굳이 재호출 없이 ca_id1에 들어가는 값을 변경하고 그 값에 의해 ph_type의 "가" 와 "나"의 값이 변경되게 하는 자바스크립트를 만들수 있으면 페이지를 다시 호출할 필요는 없어요...
제가 아직 그걸 못할뿐이고...... 그걸 하고 싶어서 계속 찾아보면서 시도하고 질문하고 있는 중이예요 ㅠㅠ

내용이 너무 길죠.......... 이미 채택한 질문에 댓글 달아주셔서 감사합니다.

정보공개를 안하셔서 쪽지가 안되네요.

서버와 브라우저의 동작을 조금 이해하셔야 할 것 같습니다.
$ca_id1 은 파라메터로 받은 php변수죠?
php 변수는 브라우저에서는 인식을하지 못합니다.
소스코드에는 html 코드와 php 코드가 섞여 있어 함께 사용하는 것 같지만 서버쪽에서만 php 코드처리가 가능하고 브라우저로 로딩시킬때 php 코드는 파싱되어 브라우저로 내려보내 줍니다.브라우저에서 소스보기를 했을때 나오는 코드가 브라우저가 서버에서 받는 코드 전부입니다. 브라우저에서 소스보기를 했을때 $ca_id1 과 같은 변수는 없고 php 에서 처리된(echo 문으로 출력된) 값만 보이게 됩니다.
그래서 브라우저에서 php 변수의 값을 사용하려면 로딩 할때 html 태그나 자바스크립트 변수에 해당 변수의 값을 대입(echo 등으로)하여 사용하게 됩니다.

그래서 로딩된 상태에서 php 변수인 $ca_id1의 값을 변경하신다는 부분에서 조금 이해가 필요해 보입니다.

ca_id1값을 변경한다는 것이 원하는 a 태그를 클릭하는 의미인 가요?
그리고 그에 따라서 ph_type 의 값이 변경되고. ph_type은 셀렉트박스 같은데 현재 화면에 있는 값을 변경하는 거라면 자바스크립트로 그냥 변경하면 될 것 같으데...

아~ 닥시님 감사합니다.
제가 하고싶었던 작업이 얘기하신거예요.
ca_id1이라는 변수에 들어있는 서버의 어느 값을 브라우저로 내려받아 출력된 값이 A라면 그 출력된 A 값을 B로 바꾸거나 C로 바꾸고 싶다고 질문드렸던 거였어요... 지식이 부족하니.... 질문도 제대로 못하고 있었네요.
a태그에 출력된 A값을 자바스크립트로 B로 변경되게 짜면 되는거였군요.
여태 ca_id1의 값을 바꾸려고 시도하고 있었는데... 방법이 잘못됬었다니...
닥시님 덕분에 자바스크립트로 작업해서 한고비를 또 넘겼네요.
정말 감사합니다~~~~~ 좋은하루 되세요~

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

회원로그인

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