2010-05-16 3 views
1

MYSQL DB의 입력 필드에 값을 삽입하는 것에 대한 질문이 있습니다.입력란의 HTML 태그

먼저 입력란의 데이터를 데이터베이스에 저장하는 양식이 있습니다. 여분의 스크립트가 html 코드에 Á =>Á의 필터를 필터링합니다. 그래서 ÁlloÁllo

과 같이 저장됩니다. DB의 데이터를 'div'에 삽입하면 Állo이 표시됩니다. 내가 입력 필드에 데이터를 삽입 할 때 그것을 보여줍니다 Állo

내가 pagerefresh없이 $ .post 방법으로 DB에 데이터를 저장하기 위해 jQuery를 사용

잘못

을 뭐하는 거지. 또한 JREERY $ .post 메서드를 사용하여 DB에서 페이지 새로 고침없이 데이터를 가져옵니다.

누군가가 도와 줄 수 있기를 바랍니다.

+0

왜 일반 문자를 HTML 항목으로 저장 하시겠습니까? HTML로 특별한 의미를 지닌 문자 만 인코딩하면됩니다 ('<> '및 때때로' "'') –

+0

모든 브라우저에서 Á가 동일하게 표시되는지 더 잘 알 수 없습니다. 모든 브라우저가 Á를 잘 나타내는 것은 아니며 때로는 Á을 '?'로 표시합니다. – Megapool020

+0

올바른 방법은 문자 인코딩과 일치하는 것입니다. 하나를 선택하고 (UTF-8이 가장 좋습니다) 브라우저에 사용하고 있다는 것을 기억하십시오. 인코딩을 설정하면 –

답변

0

정말로 htmlentities를 데이터베이스에 저장하면 안됩니다. Állo을 저장하고, 필요하다면 htmlspecialshars($my_value_from_db);을 사용해야합니다 (PHP는 서버에서 실행되는 것을 모릅니다 만, perl이나 다른 언어와 유사한 기능이 있습니다). 저장 프로세스를 변경하거나 오래된 항목을 수정할 수없는 경우 입력 필드에 표시된 값에 html_entity_decode($bla)을 사용할 수 있습니다. (다시 PHP입니다)

+0

이것은 트릭을 만들었습니다. 인코딩을 찾았으니 돌려 준 문자열을 utf8_encode해야했습니다. Tnx !!!!! – Megapool020

0

div에 HTML을 삽입하고 있지만 입력의 DOM 값 속성을 직접 설정하고 있습니다.

HTML 엔티티가 HTML로 표현되는 것으로 변환되지만 value 속성은 텍스트를 필요로하므로 어떤 특별한 의미도 &에 적용되지 않습니다.

실제 데이터는 HTML보기가 아닌 데이터베이스에 저장해야합니다. HTML 로의 변환은 서버 측 프로그램 (MVC 디자인 패턴을 사용하는 경우보기)에서 빠져 나와야 처리됩니다.

+0

Ok, tnx하지만 DB에서 입력 필드로 Á을 삽입하면 브라우저에 '?' 또는 다른 기호가 아니라 Á. 내 페이지의 시청자가 '?'가 아니고 '?'가 아니기 때문에 브라우저 설정을 변경하고 싶지 않습니다. – Megapool020

0

인코딩 스크립트에서 수행하는 작업을 취소하고 양식 필드로 출력 할 때 스크립트를 호출하십시오.