텍스트 상자와 버튼이있는 간단한 간단한 양식이 있습니다. 목표는 비동기 요청 (jQuery : $ .ajax)을 사용하여 텍스트를 보내는 것입니다. 서버 (PHP는/MySQL은 라 Joomla) 그래서 데이터베이스 테이블에 추가 할 수 있습니다.Ajax에서 데이터베이스에 공백이있는 데이터를 가져올 수 없습니다. POST 요청
var value= $('#myvalue').val();
$.ajax({
type: "POST",
url: "/administrator/index.php",
data: { option: "com_mycomponent",
task: "enterValue",
thevalue: value,
format: "raw"},
dataType: "text",
success: reportSavedValue
});
사용자가있는 공간에 텍스트를 입력 할 때 문제가 발생한다 :
다음은 클라이언트로부터 데이터를 전송하는 자바 스크립트이다. 내가받은 $ _POST 변수는 모든 공백을 제거 했으므로 사용자가 " 이 문자열에 공백이 있습니다" "을 입력하면 서버는" Thisstringhasspaces "값을 가져옵니다.저는 주위를 둘러 보았고 encodeURIComponent을 사용해야하는 많은 참조를 발견했습니다. 그래서 그것을 시도했지만 지금은 $ _POST에서 얻을 값은 "This20string20has20spaces"입니다.
따라서 은 공백 대신 제거 된 백분율 기호 만 있고 16 진수는 남겨두기를 기대합니다.
정말 혼란 스럽습니다. 이런 종류의 질문은 웹상의 모든 곳에서 묻고 대답하는 것 같습니다. encodeURIComponent은 은색 총알로 환영받습니다. 하지만 분명히 나는 다른 종류의 라이칸 스롭과 싸우고있다. 누구든지 어떤 제안이 있습니까?
나는 서버에서 일어나는 몇 가지 필터링이 있다고 생각합니다. 내 400 년 + 뱀파이어로 나는 문자열을 자동으로 보지 못한 적이있다. 클라이언트에서 (jquery 나 다른 어떤 것에 의해서) 선행/후행 공백을 제거했다. – karim79
데이터를 간단한' php print_r ($ _ POST); ?>'당신의 Joomla 외부에 배치 된 페이지. – Cesar
jquery의 버전은 무엇입니까? processData = false를 설정하십시오. 요청에. 도움이되지 않으면 서버의 잘못입니다. – Sergei