Recentemente tive um problema ao usar o plugin autocomplete. No projeto que eu estava desenvolvendo, precisa que os dados do autocomplete, fossem passados via POST para o Code Igniter (Por segurança).
Por default o plugin passa os dados via GET, aí pensei! ferro!.
Perdi um pouco de tempo e fui o olhar o código do plugin, notei que o puglin é implementa o $.ajax do JQUERY, então era só acrescentar o “type”, pronto!, simples não!.
Veja como era antes:
$.ajax({
// try to leverage ajaxQueue plugin to abort previous requests
mode: "abort",
// limit abortion to this input
port: "autocomplete" + input.name,
dataType: options.dataType,
url: options.url,
data: $.extend({
q: lastWord(term),
limit: options.max
}, extraParams),
success: function(data) {
var parsed = options.parse && options.parse(data) || parse(data);
cache.add(term, parsed);
success(term, parsed);
}
});
Veja agora como ficou:
$.ajax({
// try to leverage ajaxQueue plugin to abort previous requests
mode: "abort",
type: "post", //Apenas essa linha foi adicionada
// limit abortion to this input
port: "autocomplete" + input.name,
dataType: options.dataType,
url: options.url,
data: $.extend({
q: lastWord(term),
limit: options.max
}, extraParams),
success: function(data) {
var parsed = options.parse && options.parse(data) || parse(data);
cache.add(term, parsed);
success(term, parsed);
}
});
Agora para fazer a recuperação dos dados você só precisa usar o $_POST ao invés do $_GET.
<?php
$autocomplete = $_GET['q']; // Antes.
$autocomplete = $_POST['q']; // Depois.
$autocomplete = $this->input->get('q'); // Antes -> Code Igniter.
$autocomplete = $this->input->post('q'); // Depois -> Code Igniter.
?>
Fica dica, para quem precisar deixar o autocomplete um pouco mais seguro.
Até mais.




