간단한 검색 : Codeigniter를 사용하여 양식 변수를 URI로 전달합니다.
-
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은 북마크가 가능하며 무언가가 서버 측을 바꾸고 있음을 의미하지 않습니다.