간단한 검색 : Codeigniter를 사용하여 양식 변수를 URI로 전달합니다.

StackOverflow https://stackoverflow.com/questions/227470

  •  03-07-2019
  •  | 
  •  

문제

각 페이지에 검색 양식이 있습니다. 양식 도우미를 사용하면 기본값이 있습니다 $_POST. 검색어가 URI에 표시되기를 바랍니다.

http://example.com/search/KEYWORD

나는 약 1 시간 동안 Google에 있었지만 아무 소용이 없습니다. 나는 방법에 대한 기사 만 찾았습니다 $_GET 기본적으로 기본 URI 협약으로 인해 장애가 발생합니다. 나는 이런 종류의 기능을 원하는 첫 번째 사람이 될 수 없습니다. 미리 감사드립니다!

도움이 되었습니까?

해결책

JS를 활성화하지 않은 사람들을 다루는 경우 더 나은 수정 사항이 있습니다.

보다:

<?php echo form_open('ad/pre_search');?>
   <input type="text" name="keyword" />
</form>

제어 장치

<?php
    function pre_search()
    {
        redirect('ad/search/.'$this->input->post('keyword'));
    }

    function search()
    {
        // do stuff;
    }
?>

나는 이것을 전에 많이 사용했습니다.

다른 팁

내가 아는 한, 간단한 게시물로 이것을 달성하는 방법은 없습니다. 그러나 JavaScript를 통해 양식에 액세스하고 대상을 업데이트 할 수 있습니다. 예를 들어:

<form id="myform" onsubmit="return changeurl();" method="POST">
<input id="keyword">
</form>

<script>
function changeurl()
{
    var form = document.getElementById("myform");
    var keyword = document.getElementById("keyword");

    form.action = "http://mysite.com/search/"+escape(keyword.value);

    return true;
}
</script>

세분화 된 URL과 함께 쿼리 문자열을 활성화하는 방법에 대한이 게시물을 확인하십시오.

http://codeigniter.com/forums/viewthread/56389/#277621

다음 방법을 사용하여 추가 변수를 검색 할 수 있습니다.

// url = http://example.com/search/?q=text
$this->input->get('q');

remitted_uri_chars 구성 설정을 변경할 필요가 없기 때문에 더 좋습니다. 사용자가 URI에 입력하는 것을 간단히 넣는 경우 "제출 한 URI가 허용되지 않은 문자"오류를받을 수 있습니다.

가장 좋은 솔루션은 다음과 같습니다.

$uri = $_SERVER['REQUEST_URI'];

$pieces = explode("/", $uri);

$uri_3 = $pieces[3];

감사 Erunways!

CodeIgniter에 대해 많이 모르지만 PHP이므로해서는 안됩니다. $_GET 여전히 당신이 이용할 수 있습니까? Google과 같은 방식으로 URL을 형식화 할 수 있습니다. mysite.com/search?q=KEYWORD 그리고 데이터를 꺼내십시오 $_GET['q'].

게다가, 검색 양식은 게시물을 사용하기에 나쁜 장소처럼 보입니다. get은 북마크가 가능하며 무언가가 서버 측을 바꾸고 있음을 의미하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top