Modification syntaxe requette Ajax .post qui ne fonctionne plus avec jQuery 3.3.1
Bonjour,
Je souhaite transformer un site non responsive en responsive avec bootstrap 4.
Je suis développeur php, mais nul en Ajax et pas le temps de me former pour le moment.
Une requête fonctionnelle sur le site avec jquery 1.5.1 ne fonctionne plus avec jquery 3.3.1 (requête écrite par quelqu'un d'autre).
Voilà comment elle est écrite :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function rechercher(recherche){
clearTimeout(timer);
timer=setTimeout(function validate(){if (recherche.length>1){
$.post("<?php echo base_url();?>lexique/index", { recherche_mot: recherche },
function(data) {
$("#recherche_mot").removeClass("ajax_form_loader");
$("#liste_mots").html(data).fadeIn('fast');
$("#tabMots").trigger("update");
});
}
else {
$.post("<?php echo base_url();?>lexique/index", { recherche_mot: "0" },
function(data) {
$("#recherche_mot").removeClass("ajax_form_loader");
$("#liste_mots").html(data).fadeIn('fast');
$("#tabMots").trigger("update");
});
}},250);
} |
Le retour est un tableau en POST.
Lorsque la requête se lance, j'obtiens le message :
Bon, j'ai avancé, et j'ai réussi à réécrire cette fonction en utilisant $.ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| function rechercher(recherche){ // début fontion
clearTimeout(timer);
timer=setTimeout(function validate(){if (recherche.length>1){ // Niveau 2
$.ajax({
type: 'POST',
url: "<?php echo base_url();?>lexique/index",
data: { recherche_mot: recherche },
timeout: 250,
success: function(data){
$("#recherche_mot").removeClass("ajax_form_loader");
$("#liste_mots").html(data).fadeIn('fast');
$("#tabMots").trigger("update");
},
error: function(){
$("#liste_mots").html('Cette requête AJAX n\'a pas abouti');
},
});
}
else {
$.ajax({
type: 'POST',
url: "<?php echo base_url();?>lexique/index",
data: { recherche_mot: "0" },
timeout: 250,
success: function(data){
$("#recherche_mot").removeClass("ajax_form_loader");
$("#liste_mots").html(data).fadeIn('fast');
$("#tabMots").trigger("update");
},
error: function(){
$("#liste_mots").html('Cette requête AJAX n\'a pas abouti');
}
});
}
}); // Niveau 2
} // fin fontion |
La requête fonctionne toujours avec jquey 1.5, mais toujours pas avec 3.3, j'obtiens l'erreur :
Citation:
TypeError: $.ajax is not a function[En savoir plus]
Si quelqu'un pouvait m'aider cela serai sympa, j'ai essayé, mais la syntaxe Ajax, je ne maitrise pas du tout et rien de ne marche, et malheureusement, je suis sur du dev en php et impossible de me former en Ajax pour le moment.
Merci d'avance
Patrice
Non, pas d'autres bibliothèques
Bonjour,
Non, je n'utilise pas d'autres bibliothèques.
Voici un lien vers un site de test http://test.lexique-arabe.org/
Le graphisme n'est pas travaillé du tout, mais la fonction $.post fonctionne sur http://lexique-arabe.org/
J'ai juste modifié la version de jQuery et chargé boostrap.
Cordialement
Patrice
Sur ce site, la requete fonctionne
Bonjour,
Vous aviez raison, en fait , j'ai récupéré à l’arrache un template bootstrap, et je n'avais pas vu que jquery n'était pas chargé, MERCI !
Patrice