Używam jQuery autocompleter
do wyszukiwania.Wykonywanie wyszukiwania niewrażliwego na wielkość liter
Z mojego poniższego kodu moje wyszukiwanie dzieje się tylko w przypadku rozróżniania wielkich i małych liter, chcę rozróżniać wielkość liter. np. $array={the king, The king, The man}
I moje wyszukiwanie słów kluczowych to „”, a następnie aktualnie Dostaję tylko wyjście jak {The king, The man}
nie otrzymuję the king
ponieważ jest małymi literami.
czego chcę, jeśli napiszę "to", powinienem uzyskać wszystkie trzy wyniki.
Proszę mi pomóc rozwiązać mój problem
view.php
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$("#autocomplete").autocomplete({
source: function(request, response) {
$.ajax({ url: "<?php echo base_url().'search/suggestions'?>",
data: { term: $("#autocomplete").val()},
dataType: "json",
type: "POST",
success: function(data){
response(data);
}
});
},
minLength: 3,
select: function (a, b) {
$(this).val(b.item.value);
$(".searchform1").submit()
}
});
});
$('#autocomplete').focus();
});
function monkeyPatchAutocomplete() {
// Don't really need to save the old fn,
// but I could chain if I wanted to
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function(ul, item) {
var re = new RegExp("^" + this.term, "i") ;
var t = item.label.replace(re,"<span style='font-weight:bold;color:Black;'>" + this.term + "</span>");
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + t + "</a>")
.appendTo(ul);
};
}
$(document).ready(function() {
monkeyPatchAutocomplete();
$("#input1").autocomplete({
// The source option can be an array of terms. In this case, if
// the typed characters appear in any position in a term, then the
// term is included in the autocomplete list.
// The source option can also be a function that performs the search,
// and calls a response function with the matched entries.
source: function(req, responseFn) {
addMessage("search on: '" + req.term + "'<br/>");
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp("^" + re, "i");
var a = $.grep(wordlist, function(item,index){
//addMessage(" sniffing: '" + item + "'<br/>");
return matcher.test(item);
});
addMessage("Result: " + a.length + " items<br/>");
responseFn(a);
},
select: function(value, data){
if (typeof data == "undefined") {
addMessage('You selected: ' + value + "<br/>");
}else {
addMessage('You selected: ' + data.item.value + "<br/>");
}
}
});
});
</script>
---------------
---------------
<form class="searchform1" action="<?php echo base_url().'search/searchresult/pgn/grid/'?>" method="POST">
<img src="<?php echo base_url()?>css/images/icons/searchicon.png" style="vertical-align:middle;"/>
<input id="autocomplete" value="<?php if(isset($srchvalue)){echo $srchvalue ;} ?>" class="deletable" type="text" name="keywords" style="height: 30px;width: 450px;font-size: 16px;border: 0;border-bottom:solid 4px #dfdfdf;border-top:solid 4px #dfdfdf;" maxlength="70" placeholder=" Search for Title, Author Name, Isbn , Publisher"/>
<input type="submit" value=" Search " class="searchbtn"/>
</form>
Uwaga: 'sukces()' jest przestarzała. Zamiast tego użyj 'done()'. – itachi