2009-12-21 6 views
2

javascript 함수에 공백이있는 PHP 정의 문자열을 전달하려고하므로 쿼리 문자열에 추가 할 수 있습니다. 그러나이 함수는 공백이 없을 때만 작동하며 공백이있을 때도 실행하지 않습니다. alert()로 테스트합니다.자바 스크립트에 공백이있는 문자열 전달

거기에 내가 어떻게 이스케이프()를 할 수 있도록 자바 스크립트 함수에 공백이있는 문자열을 전달할 수있는 방법은 내 쿼리 문자열에 추가 할 수 있습니까? 난 단지 ... 같은 onClick=showUser(escape('<?php echo $deptname; ?>'))을 뭔가를 할 수 있다면

<a onClick=showUser('<?php echo $stringwithspaces; ?>')>click here</a> 

의 .js가

function showUser(str) 
{ 
alert (str); 
} 

파일

.PHP 파일 (이 예에서는 경고를()를 사용하여). .. 그것은 굉장 할 것이다. 그러나 그것은 작용하지 않았다. 어떤 도움을 많이 주시면 감사하겠습니다! 감사!

+0

PHP 파일의 전체 내용이 질문에 포함되지 않았다고 생각합니다. 거기에 들어가기 위해 그것을 편집 할 수 있습니까? –

+0

다른 HTML보다 먼저 유효한 HTML을 작성해야합니다. –

답변

7

문제는 attribute value을 인용하지 않은 것입니다. 값에 공백이 포함되지 않은 경우에만 속성 값을 따옴표로 남겨 둘 수 있습니다. 그렇지 않으면 HTML 프로세서는 속성이 끝나는 시점을 알 수 없습니다. 그렇다고해도 추천하지 않습니다. 항상 HTML 속성을 인용해야합니다.

<a href="showUser('<?php echo addslashes($username) ?>')">user</a> 

. addslashes을 호출하면 따옴표가 이스케이프됩니다. 그렇지 않으면 속성 또는 문자열 인수가 showUser으로 끝나는 것을 너무 빨리 끝내는 다른 문제가 발생할 수 있습니다.

+0

감사합니다. 나는 그 오류를 고치려고 얼마나 많은 시간을 보냈는지 믿을 수 없다 ... 아주 좋은 교훈을 배웠다. 고맙습니다. – Rees

1

예 당신은 당신이 누락 수 "당신이 XML에 필드 속성 : 각 속성은 시작이 있어야하며 종료 "

myField="blabla ..."

onClick="showUser(escape('<?php echo $deptname; ?>'))" 
+0

HTML 속성에는 인용 부호가 필요하지 않으므로 XHTML과 XML 속성에만 문제가 있습니다. 따옴표가 없으면 공백없이 값을 올바르게 구문 분석합니다. –

+0

당신 말이 맞아요.하지만 저는 좋은 습관으로 시작해서 각 속성을 인용하는 것이 더 낫다고 생각합니다. :) – Patrick

-1

공백 문자 '\ u0020'에 대한 유니 코드 이스케이프 시퀀스를 시도하십시오.

관련 문제