Bonsoir à tous :D,
Encore merci pour ce site, il m'a beaucoup aidé :).
J'ai une petite question, je réalise en ce moment une application web. J'ai commencé par apprendre le php, puis j'ai utilisé cakephp.
Maintenant je vois que de plus en plus de fonction que j'aimerais utilisés sont plus "faciles" à mettre en oeuvre via javascript.
Ma question : Quel choix faire ? mi java - mi js ? full php ?
Par exemple, je viens de découvrir le plugin dataTable pour jQuery, il permet de faire une pagination, des cherches dans les résultats et afficher un nombre d'élements en fonction d'une selection.
Un choix tellement simple à mettre en place, mais plus dur à coder en php.
Je me pose cette question surtout au niveau performances ou encore si le client n'a pas javascript ( ca existe encore ?).
Autre chose, quand je charge des elements via ajax, mes tableaux, mes tabs, etc rien ne fonctionne sur le nouvelle element qui vient de se charger.
Je pourrais ré executer mon script suite au chargement mais je sais que la fonction live le fait.
Mais comment ? j'ai réussi à l'utiliser pour des elements futurs cliquables, mais si je clique pas dessus ? si je n'agit pas dessus ?
Salut,
Le gros défaut d'Ajax c'est le référencement des pages, tu y perds beaucoup.
Après d'un point de vue visuelle ça donne quand même^^
Au niveau performance, je sais pas trop, une requête Ajax appel un contrôleur, mais sans tu l'appel aussi.
Par contre pour dataTable, c'est fait niveau client, donc moi de charge serveur.
Pour mon compte personnel, l'AJAX c'est après, c'est une couche supérieur, il faut un bon code PHP dans tous les cas.
Ca dépend des cas je dirais, un table sortable avec une pagination sans PHP c'est cool
par contre si PHP doit te sortir 10 000 enregistrement ça va péter :D
Donc juste mesure à utiliser entre perf et fonctionnalités. Mais ne pas hésiter à utiliser du js oui (l'argument "ceux qui n'ont pas js activé est pas vraiment valable)
Effectivement j'avais pas ça comme ça ;s... au début ça risque de tourner ... après 1000 enregistrement j'ai peur aussi que ca marche pas. ya un moyen de remplir une table pour tester ?
Sinon au niveau du live ? comment réussir ?
Merci pour vos réponses :)
Je vois pas trop le pb si tu met un live('click',function()...) sur un élément ça marche nan ?
ça fonctionne mais si je clique pas dessus ?
en gros ma datatable arrive mais elle n'as pas la fonction paginate etc après si je clique dessus ça apparaît mais sans cliquer dessus c'est possible ?
Salut,
Oui c'est possible :
function mafonction(){
//LE CODE QU'IL AVAIT DANS LE LIVE function(){}
}
$("#tontrucaclicker").live("click", mafonction);
});
$("document").ready(mafonction);//Où autre
A+
Décidément j'ai du mal à comprendre, la fonctionne fonctionnera que si je clique ?
Par exemple, j'utilise le js Uniform pour styliser les boutons, quand je fais un appel ajax, j'ai un retour de formulaire avec le bouton mais il se stylise seulement quand je clique dessus :/
Je dois mal comprendre
$(".box_content button").live('click',function(){
$(this).uniform();
});
Merci
Salut,
Tu as fais ce que j'ai mis?
function styliser(var lebouton){
lebouton.uniform();
}
$(".box_content button").live("click", function(){
styliser($(this));
});
$("document").ready(function(){
$(".box_content button").each(function(){
styliser($(this));
});
});
A+
Je viens de le faire, le bouton est bien styliser quand il est sur une page, mais lors d'un appel il se stylise seulement quand je clique dessus :/
j'ai du enlever le var aussi.
Merci +
Ok bah je ne comprends pas alors...
En gros, le bouton apparait après? Il existe pas au début?
Nop, je fais un appel ajax qui genere un formulaire dans un zoombox, et le bouton qui est dedans n'est styliser que quand je clique dessus
Tu as bien une action qui ouvre la zoombox?
Quand tu as cette action, tu demandes à styliser le bouton.
('.addopp').live('click',function(){
var url = "operations/add/1";
console.log(url)
$.ajax({
url: url,
async:true,
type:'get',
complete: function(request) {
$.zoombox.html(request.responseText,{
theme : 'simple',
duration : 400,
width : 400,
height : 400,
opacity : 0.5
});
styliser($(".box_content select, .box_content input:checkbox, .box_content input:radio, .box_content input:file, .box_content button"));
}
});
return false;
});
Meme au click il n'y a plus la stilisation
Ok juste avant return false mets ça pour voir :
$(".box_content select").each(function(){
alert("ok");
}
Est-ce que tu as des alert?
nop, j'ai essayer en dessous de styliser et au dessus de return false et le modal n'apparait plus dans les deux cas
Oui mais je suis bête, tu utilises ma fonction que je t'ai donné?
Mets juste ça pour voir : styliser($(".box_content select")); Sinon c'est $(".box_content select").uniform();
Ca me turlupine ton truc.
Tu peux envoyer ton code sur extrarox@hotmail.fr stp?
En me précisant, dans quel js c'est de quel lien tu le lances, etc...