2013-03-23 2 views
0

링크를 클릭하지 않으면 볼 수없는 입력 상자가있는 가입 양식이 있습니다. 코드는 다음과 같습니다.PHP를 사용하여 JS onClick 이벤트를 트리거하는 방법

<a id="showCoupon" href="javascript:void(0);" onclick="toggleCoupon();"> 
    <?php _e('Have a coupon?','mysite'); ?> 
</a> 

쿠폰 GET 변수가 설정되면 입력 상자가 표시되고 제공된 데이터로 채워지 길 원합니다. I 이런 GET 변수의 존재를 확인하기 위해 추가 PHP : 설정하면

if(isset($_GET['coupon'])) { 
    $coupon = $_GET['coupon']; 
} 
?> 

은 또한, 입력 상자, $coupon의 값을 사용하도록 변경되었다. 이제는 JS 이벤트 toggleCoupon();을 트리거하는 방법을 알 수 없습니다.

나는 다음과 같은 링크를 클릭 PHP 함수를 수정 :
if (isset($_GET['coupon'])) { 
    $coupon = $_GET['coupon']; 
    echo "<script>$('#showCoupon').trigger('click');</script>"; 
} 
?> 

지금까지, 그것은 작동하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

사용자가 링크를 클릭 할 때 일부 JavaScript를 실행할 수 있기를 원하십니까? – orb

+0

아니요, 링크를 클릭하지 않는 한 기본보기에서 숨겨져있는 get 변수로 텍스트 필드를 미리 채 웁니다. –

답변

2

는 당신이 시도 :

<script> 
$(document).ready(function(){ 
$('#showCoupon').trigger('click'); 
}); 

</script> 

문서로드, jQuery를 그런 식으로 kludge를 사용하지 마십시오 showCoupon

+0

그 덕분에, 고마워! 그래서 $ (문서) .ready가 누락 되었습니까? 그것이 PHP에 의해 실행 되었기 때문에 내가 필요로하지 않았다고 생각했다. 반드시 페이지를로드하는 것이 아니다. –

+1

코드가 PHP에 의해 실행되지 않습니다. PHP는 서버 측 언어입니다. 특정 상황이 충족되는 경우 해당 스크립트를로드하도록 페이지에 알려주는 것입니다. 그러나 실제로 스크립트가 실행되는 것은 페이지가로드 될 때까지 발생하지 않습니다.이 경우 DOM이 준비되었을 때 –

+0

알겠습니다. 대답 해 주시면 최대한 빨리 답변 해 드리겠습니다. –

0

의 ID로도 요소의 클릭을 트리거합니다. 그것은 끔찍한 일입니다.

대신 URL 매개 변수가 제공된 경우 요소를 숨기는 코드 조각 (CSS 클래스, "display : none;", 기타 등등)을 서버 쪽에서 출력하지 마십시오.

요소가 JavaScript에 의해 숨겨져 있으면 초기 상태가 표시되어야 함을 나타내는 값을 전달하십시오.

관련 문제