2012-05-09 3 views
0

특정 질문의 라디오 버튼을 사용하여 이벤트를 첨부하려는 Smarty 템플릿을 사용하여 설문 조사 양식을 만들었습니다. 그 중 하나를 클릭하면 메시지가 팝업됩니다. 그래서 클릭/변경 이벤트 리스너를 추가하고 싶지만 PHP를 사용하여이를 수행하는 방법을 모른다. 미리 라디오 버튼 id를 알지 못하기 때문에 (여기에 생성됩니다), 자바 스크립트를 사용할 수 있을지 확실하지 않습니다. 모든 해결책/제안?PHP를 사용하여 이벤트 리스너를 추가 할 수 있습니까?

Google 검색은 안드로이드와 자바 스크립트에 대한 이벤트 리스너를 추가하는 데 필요한 모든 종류의 대답을 반환합니다.

+1

PHP를 통해 JavaScript 서버 측의 일부를 생성 할 수없는 이유는 무엇입니까? –

+0

ID를 모른다면 라디오 버튼을 어떻게 찾을 수 있습니까? – ilanco

+0

Smarty에서 라디오 버튼이 라디오 버튼에 추가되는 질문 (db에서 가져올 때)은 코드가 라디오 버튼에 대한 ID를 생성하는 장소 인 템플릿을 사용하여 처리됩니다. . PHP 내부에서 코드 생성 논리를 사용할 수는 있지만. Jack의 추천 사운드가 더 가능성있는 옵션처럼 보입니다. 그 이상을 검색하십시오. – Ani

답변

3

라디오 버튼에 클래스를 추가 한 다음 JavaScript/JQuery를 사용하여 필요에 따라 이벤트 리스너를 입력에 추가 할 수 있습니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript" src="myjsfile.js"></script> 
<input type="radio" class="clickyradio" /> 
<input type="radio" class="clickyradio" /> 
<input type="radio" class="clickyradio" /> 

이제 파일 서버에 뭔가를 전달하기 위해 클릭을해야하는 경우, 클릭 이벤트 핸들러 내 아약스 전화를 넣어

$(document).ready(function() { 
    $('.clickyradio').click(function() { 
     // whatever you want to happen when it gets clicked 
     // "this" keyword will refer to the input element that got clicked 

    }); 
}); 

을 myjsfile.js.

+0

코드 Thnx! 나는 기존 시스템을 사용하여 구축 한 이후로 문제를 겪었습니다 ... 아이디어를 통합하기 위해 사냥과 못생긴 해킹을했습니다 ... 그리고 거기있었습니다 !!! 필요한 경우 작업 :) – Ani

0

PHP는 클라이언트 측에서 라디오 버튼을 클릭하는 동안 모든 코드가 서버 측에서 이루어 지므로 PHP는 라디오 버튼을 수신 할 수 없습니다. 거의 확실하게 자바 스크립트를 사용해야합니다. JS에 익숙하지 않다면 jQuery를 확인해 보시기 바랍니다. 그것은 매우 사용자 친화적이며, IMHO를 빨리 배울 수 있습니다. 이것으로 당신은 raido 버튼이 클릭되는 것을들을 수 있으며, AJAX를 통해 PHP 스크립트로 정보를 전달할 수 있습니다. 나는 당신에게 더 좋은 예를 보여줄 것이지만, 당신의 코드를 모른 채 그것을 설명하기는 어렵다.

+0

JS와 함께 작업 했으므로 문제가되지 않습니다. 위의 주석에서 Jack이 제안한대로 PHP 내에서 JS를 만들 수 있다는 것을 알지 못했기 때문에 이제 어떻게 수행하는지 검색하고 있습니다. 나는 그것이 내 문제를 해결할 것이라고 생각한다. 설명 할 수있는 코드가 있다면 매우 유용 할 것입니다. 감사! – Ani

2

자바 스크립트 이벤트가 발생한 후 가장 가까운 것은 php 이벤트 리스너에게 아약스를 통해 특정 PHP 기능을 호출하는 것입니다. 그 요청은 기술적으로 이며 클라이언트 측의 이벤트 체인 (콜백)에이 붙어 있습니다.

하지만 PHP는 클라이언트 쪽이 아니기 때문에 그렇게하지 않습니다.

-1

당신이 할 수있는, 당신은 단지 자바 스크립트를 작성하는 PHP를 사용하고 싶습니다. 두 가지 방법 중 하나를 파일에 기록하거나 스크립트를 PHP 파일로 지정하여이 작업을 수행 할 수 있습니다.

당신이 후자를 선택하면

, this site

파일을 설정하는 방법에 대해 설명합니다. 문서에서 그렇게하면 다음과 같이하면됩니다.

<?php 

    echo "<script>"; 

    if($radio_button == 'blah'){ 
     echo "document.getElementById('$radio_button')";//bind your event here 
    } 
    echo "</script>"; 

의미가 있습니까? javascript 명령에서 php 파일을 호출하는 것은 아마도 약간의 일이지만, 두 가지 방법 모두 가능합니다.

관련 문제