2011-05-09 6 views
0

id 요소에 PHP 코드가 있습니다. jQuery에서 id를 사용하여 행을 표시 할 수 있습니다. 행이 숨겨져있는 경우 사용자 선택에 따라 보고서를 만들므로 PHP 코드를 실행하지 마십시오. 문제는 행이 표시되는지 숨겨 지더라도 PHP 코드가 항상 실행된다는 것입니다. 또한 PHP는 내 데이터베이스의 데이터를 표시하므로 사용하도록 강요 받았습니다.행이 jQuery를 사용하여 표시되는 경우 PHP 코드 실행

+1

"행이 숨겨져있는 경우"란 무엇을 의미합니까? 표시되는 행이 DOM에 숨겨져 있거나 데이터베이스에 숨겨진 값이 설정된 경우를 의미합니다. PHP가 생성 된 후에는 html에 액세스 할 수 없다는 것을 기억해야합니다. PHP는 html을 생성하고이를 전달합니다. – gruntled

+0

예제 코드 없이는 대답 할 수 없습니다. 추가 할 수있는 경우 운영자의주의를 돌리기 위해이를 플래그로 표시하여 검토하십시오. 또한 시프트 키를 찾으십시오. –

답변

3

질문을 잘못 읽고있을 수도 있지만 서버에서 렌더링이 끝나면 jQuery를 사용하여 PHP 코드를 실행하고 싶습니다. 이것은 가능하지만 어쩌면 그렇게 생각하지 않을 수도 있습니다.

PHP의 작업은 HTML을 생성 (또는 다른 작업을 수행)하고 브라우저에 데이터를 전달할 때 수행됩니다. 브라우저에이 데이터 (일반적으로 정적 HTML)가 있으면 JavaScript의 작업이 시작됩니다. PHP는 이미 실행을 마쳤기 때문에 JavaScript는 "도달 할 수 없으며"PHP에서 함수를 호출 할 수 없습니다. 그러나 다른 방법이 있습니다.

JavaScript를 사용하여 PHP 코드를 호출하는 가장 좋은 방법은 XMLHttpRequest (XHR)를 사용하는 것입니다. jQuery provides a great method for doing this. 나는에 링크 된 문서에서 약간 변형 예를 사용 : - GET (arg1=foo&arg2=bar)을 통해 인수가 전달 될 수있다 -

$.ajax({ 
    url: 'dbCall.php?arg1=foo&arg2=bar', 
    success: function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
    } 
}); 

이 코드하면 파일 dbCall.php을 부를 것이다 다음 그 결과를 기다립니다. 결과가 도착하면 success 콜백이 실행되고 dbCall.php 스크립트의 데이터를 사용하여 모든 요소의 내용을 result 클래스로 바꿉니다. alert 전화가 오면 화면에 대화 상자가 뜨면서 문제가 발생했음을 알립니다.

+0

게시자의 고소로 인해 사용자 선택에 대한 동적 보고서를 만들 수있는 또 다른 아이디어가 있습니다. –

+0

도움이되었을 것이라는 소식을 듣게되어 기쁩니다. 다만 메모, : 당신은 여러 가지 질문을했지만 아직 어떤 대답도 수락하지 않았습니다. 사이트를 계속 사용하려면 질문에 대한 답변을 수락하는 것이 좋습니다. 그렇지 않으면 다른 사용자가 나중에 답변을 제공 할 가능성이 줄어 듭니다. –

관련 문제