2010-08-04 5 views
1

아약스를 통해 DIV를 채우는 PHP 파일이 있습니다. 모든 일이 잘되고 멋진 일을 제외하고 나는 PHP의 팝업 상자에서 JS 경고 상자를 얻을 수 없다.PHP에서 AJAX 앱의 일부로 JS 경고 발생

echo "does this show up?"; 
echo "<script language='javascript'>alert('thanks!');</script>"; 

: 여기

은 (, 나는 또한 중간 등으로, 처음으로 그것을 시도했습니다 이것은 PHP의 끝으로 압정으로 고정 시키게되는) 제가 테스트하는 데 사용하고있다 "이게 보여?" 에코되며 JS를 codeinspector에서 볼 수 있지만 경고 상자는 표시되지 않습니다. 그 코드를 가져 와서 자체 PHP 파일에 던지면 (더 큰 아약스 앱의 일부로 더 이상 임베드되지 않음) 잘 작동합니다.

제안 사항?

+0

당신이 볼 수 있나요 "<스크립트 언어 = ' javascript '> 경고 ('thanks! '); "코드 관리자 또는 방화 광 또는 소스보기? – naikus

+0

CodeInspector와 Firebug를 보았지만 해결 방법을 찾았습니다. DIV 태그가 포함 된 PHP 파일을 넣었습니다 (이전 PHP가 채워 넣었 음). 왜 낮은 PHP가 작동하지 않았는지 모르지만이 해결 방법은 나에게 좋습니다. 감사합니다. – themerlinproject

+0

PHP는 결코 클라이언트 측에서 "작동"하지 않습니다. 그래서. 이 PHP 파일을 일반 HTML/js 파일로 대체하고 js로 실험 해보십시오. PHP는 클라이언트 측 문제와 아무런 관련이 없습니다. –

답변

0

자바 스크립트는 페이지가로드되는 동안 한 번 구문 분석됩니다. 그래서 만약 당신이 잘 작동하는 페이지 에이 코드를 넣어 .... 브라우저 아약스로드 된 콘텐츠를 구문 분석하지 ...하지만 우리는 아약스로드 된 콘텐츠 자바 스크립트 함수 호출을 만들 수 있습니다.

3

AJAX를 통해 script 블록을 보내는 것은 입니다. 잘못된 방법입니다. 대신 값 (아마도 json_encode을 사용하여 JSON을 사용한 다음 javascript JSON library을 사용하여 디코딩해야 함)을 작성한 다음 스크립트에서 경고를 호출해야합니다.

예를 들어

, 이런 식으로 뭔가 (테스트되지 않은,하지만 당신은 아이디어를 얻을) :

PHP :

echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test')); 

자바 스크립트 :

retValObj = JSON.parse(retVal); 
if (retValObj.Message != null) { 
    alert(retValObj.Message); 
} 
관련 문제