채택완료

버튼의 onclick 대신...

2022-01-20 (목) 06:12:09 2,601
Copy
<button class="btn btn_02" onclick="javascript:changeAction(<?php echo $row['mb_1']; ?>,'<?php echo $row['mb_id']; ?>');">클릭합니다</button>

안녕하세요.

위에 보시면 버튼 클릭해서 changeAction 을 실행하는대요..

아래 처럼 그냥 조건되면 처리하려고 해봤는데...Call to undefined function 에러가 나오네요..

아래처럼 구현하려면 문법이 다른가요? 

조언을 좀 부탁드립니다.

<?php

   if($level >= 2){

      changeAction($mb_1,$id);

   }

?>

|

답변 4개 / 댓글 4개

채택된 답변
+20 포인트
2022-01-20 (목) 10:04:31
Copy
<?php

   if($level >= 2){

      changeAction($mb_1,$id);

   }

?>

사용하신 문법은 자바스크립트의 function이 아닌 php의 function 호출로 인식됩니다.

분기점이 꼭 필요하신 경우라면 두번 작성하시거나 클래스 또는 아이디 호출 방식으로 변경하시면 좋습니다.

Copy
<?php if($level >= 2){ ?>

<button class="btn btn_02" onclick="javascript:changeAction(<?php echo $row['mb_1']; ?>,'<?php echo $row['mb_id']; ?>');">클릭합니다</button>

<?php } else { ?>

<button class="btn btn_02">레벨부족</button>

<?php } ?>

또는

Copy
<button class="btn btn_02 changeAction" data-mb1="<?php echo $row['mb_1']; ?>" data-mb_id="<?php echo $row['mb_id']; ?>">클릭합니다</button>

 

<script>

$(".changeAction").on("click", function() {
        var data = $(this).data();
        var mb1 = data.mb1,
            mb_id = data.mb_id;
        changeAction(mb1,mb_id);         
    });

</script>

정도 될 듯 합니다.

답변에 대한 댓글 1개

네네 자세한 설명...정말 감사드립니다. 큰 도움 얻어갑니다.
2022-01-20 (목) 10:33:13

<button class="btn btn_02" data-level="<?=$level?>" onclick="changeAction(<?php echo $row['mb_1']; ?>,'<?php echo $row['mb_id']; ?>');">클릭합니다</button>

<script>

$(function() {

    if($(".btn_02").data("level") >= 2) $(".btn_02").trigger("click");

});

</script>

이렇게 해도 되지 않을까요?

2022-01-20 (목) 10:00:01

javascript 에서 php 함수를 실행한다는 말인가요?

직접은 안되니 AJAX 를 통해서 하던지 하셔야 할겁니다.

답변에 대한 댓글 1개

네 감사합니다. ajax.... 공부 하겠습니다.
2022-01-20 (목) 08:57:56
이렇게 바꿔보셔요
onclick 안에 javascript: 이것을 넣으셔서 그렇습니다.
Copy
onclick="changeAction(<?php echo $row['mb_1']; ?>,'<?php echo $row['mb_id']; ?>');

답변에 대한 댓글 2개

답변 감사드립니다. 큰 도움 되었습니다.
2022-01-20 (목) 10:20:02
본문 내용을 제대로 읽어보지 못했네요.
php에서 javascript를 호출을 못합니다.

자바스크립트에서 changeAction 호출을 하셔서 구현하셔야합니다.

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