2011-03-08 4 views
0

기존 PHP 페이지에 CodeIgniter 주석 폼을 포함하고 싶습니다. CodeIgniter는 내가 양식을 포함 내 원래의 PHP 페이지의 내용을 잃게 형태의 결과를 표시하는 뷰를로드 할 때 현재 나는, 그러나기존 페이지에 CodeIgniter 폼 포함하기

$_SERVER["REQUEST_URI"] = "comment/index2/".$page; 
       require_once($directoryLevelPrefix . "staff/codeigniter/index.php"); 

와 코멘트 양식을 포함하고있다. 양식 데이터가 원래 PHP 페이지로 리디렉션되도록 데이터베이스에 추가 된 후 리디렉션 추가를 시도했습니다.

redirect($_POST['return']) 

하지만 '감사합니다.'와 같은 변수를 전달하려고합니다. 그러면 헤더에 이미 오류가 발생합니다.

다른 방법으로는 아약스를 사용할 수 있지만 의견을 제출할 때 전체 페이지를 새로 고침하고 싶습니다.

답변

0

왜냐하면 CodeIgniter는 전체 웹 페이지를 표시하도록 설계된 프레임 워크이기 때문입니다. 새로운 헤더와 모든 것을 보내려고하기 때문에 그것을 포함시킬 수는 없습니다.

두 솔루션 :

  • 메인 페이지로 CodeIgniter의 페이지를로드, 단지보기 파일과 같은 원래의 PHP 코드를 포함 할 수 있습니다. 이것은 원래의 PHP 파일이 어떻게 설정되어 있는지에 달려 있습니다.

  • cURL을 사용하여 자신의 서버에서 페이지를 호출하여 html 출력을 문자열로 가져온 다음 현재 페이지에 표시 할 수 있습니다. 이것은 매우 효율적이지는 않습니다.

  • C. Scott Asbach가 언급했듯이 전체 페이지를 iframe에로드 할 수 있습니다. 아마도 iframe은 더 이상 사용되지 않으며 지저분한 웹 사이트를 만드는 것으로 알고 있습니다.

은 아마 최고의 단지 시도하고 내가 비슷한 요구를했고, 난 그냥 iframe에 된답니다 양식을로드

+0

옵션 1은 제 동료들과 정말 혼란 스럽습니다. 옵션 2는 생각하지 못했지만 꽤 상냥하지 않습니까? 나는 그것이 헤더를 전송하기 때문에 Codeigniter를 포함 할 수 없다고 생각해야한다고 생각한다. 그러나 사이트를 CI로 마이그레이션하고 중간 단계가 필요할 때 많은 사람들이이 작업을 수행해야하므로 작은 코드 조각을 포함시키는 방법이 있어야한다고 생각했습니다. – Robertg

+0

확실하지 않습니다. 나는 사람들이 대개 CI에서 전체 프로젝트를 만들거나 최소한 사이트를 사용하여 섹션을 다시 작성한다고 생각하지만 실제로는 다른 PHP 스크립트에 포함한다고 생각하지는 않습니다. index.php를 호출하자마자 브라우저에 전체 페이지를 출력하는 것으로 끝나려고합니다.나보다 CI가 더 발전한 일부 사람들은 헤더 전송을 중단하기 위해 속임수를 사용하는 방법을 알고 있지만 나에게 좋은 생각처럼 보이지는 않습니다. –

+0

문제를 해결했는지 확신 할 수 없지만 인쇄하지 않고보기를 반환하여 문제를 해결할 수는 있습니다. 그런 다음 컨트롤러에서보기를 반향시킬 수 있습니다. 그러나 이것이 여전히 CI의 헤더를 포함할지 여부는 알 수 없습니다. –

0

:-) 기존 페이지에서 하위 폼을 표시 CodeIgniter를 사용하지 않도록하는 것입니다. 이것은 WordPress 페이지에 문의 양식을 넣는 것이 었습니다. 내 요구가이 한 형태로 제한되어 있었기 때문에 iframe과 함께 갔고 어떤 식 으로든 CodeIgniter와 WordPress를 통합 할 필요가 없다고 느꼈습니다.

이 방법의 한 가지 장점은 양식을 제출하고 확인 페이지, 오류 페이지 또는 다중 페이지 양식을로드 할 수 있으며 모든 탐색이 iframe 내부에서 수행되므로 페이지를 떠나지 않아도된다는 것입니다. 당신은 양식을 사용하는 동안 켜져 있습니다. 또 다른 프로는 양식이 완전히 이식 가능하다는 것입니다.

단점은 귀하의 필요와 취향에 기반한 많은 것들이 될 수있는 iframe 사용에 대해 마음에 들지 않을 수있는 사항입니다.

관련 문제