2013-09-23 4 views
1

저는 초보자 인 PHP 프로그래머입니다. 제 코드에 무슨 문제가 있는지 궁금합니다.PHP는 텍스트를 변경합니까?

여기에 영향을받는 지점에서 작은 발췌 한 것입니다 크롬의 개발자 도구에서

echo "<form action='?tab=4' name='toedit5' method='get'><input value='text' onblur='edit('toedit5')' /></form>"; 

form 요소가 완전히 사라지고 edit('toedit5')edit(' toedit5')된다.

edit() 함수가 실행되지 않습니다.

이 한 줄의 코드에 문제가 있습니까? 그렇지 않으면 코드가 엉망입니다. 미안하지만 나는 그것을 포함시키지 않았다. 그러나 나는 무엇을 포함해야할지 모른다. 더 자세한 정보가 필요하면 알려주세요.

감사합니다.

+5

형식이 잘못된 요소처럼 보입니다. 따옴표를 벗어나야합니다. – Daedalus

+0

이것은 일반적인'HTML' (&'javascript') 문제입니다. PHP와 관련이 없습니다. 그것에 간단한 HTML 검증을 수행하십시오 ... – Wrikken

+0

오. 감사. 하지만 그걸 고치고, 여전히 양식 요소를 되풀이하지 않게되었습니다. –

답변

5

당신은 다음과 같이 당신의 따옴표 안에 당신 인용 echo'd 문을 탈출해야합니다

<?php 
    echo "<form action='?tab=4' name='toedit5' method='get'>"; 
    echo "<input value='text' onblur='edit(\"toedit5\")' />"; // escaped..! 
    echo "</form>"; 
?> 

그것은 같은 그것에 대해 생각하는 나에게 도움이 내가 밖으로 시작되었을 때 : 어떻게 당신의 브라우저는 알고 있지 onblur='edit('toedit5')'의 두 번째 작은 따옴표가 onblur 문을 닫거나 매개 변수를 여는 경우? 이 예에서 브라우저는 처음 두 따옴표를 쌍으로 묶어 onblur 속성에 할당합니다 (예 : onblur='edit(').

업데이트 1 : 위의 코드를 사용하여이

, 나는 크롬의 개발자 도구에서 만든 빠른 PHP 페이지를 검사하고 다음 (검사에 사용할 양식)를 참조 할 수 있었다 :

Screen shot of developer tools

+0

위에서 언급 한 것처럼 양식 요소는 아직 알려지지 않은 이유로 인쇄되지 않습니다. –

+0

안녕하세요 @ 존, 내 업데이트 된 답변을 참조하십시오, 그것이 도움이되기를 바랍니다! –

4

HTML 속성을 둘러싼 더 큰 따옴표를 사용하고 자바 스크립트 메서드 호출 내에서 이스케이프 된 작은 따옴표로 문자열 주위에 작은 따옴표를 사용해야합니다. 좋아요 :

echo '<form action="?tab=4" name="toedit5" method="get"><input value="text" onblur="edit(\'toedit5\')" /></form>'; 
관련 문제