Bonsoir,

Avant d'aller plus loin je précise que je début avec JQuery mais que j'ai des notions en PHP, HTML et CSS.
Je bloque sur un petit problème en effet j'ajoute grâce à append() du contenu HTML sauf qu'après je ne peux plus le manipuler avec Jquery ???

mon js:

(function($){
    $( "a#list-modules" ).click(function() {
        event.preventDefault();
        $("table#list-module").css('display','block');
    });
    $( "#add-title" ).click(function() {
        event.preventDefault();
        $("table#list-module").css('display','none');
        $(".page").append('<div id="htitle"><h1>[ici mon titre]</h1></div><div class="form"><div class="form_none"><input type="text" id="title" name="title" placeholder="votre titre"><br><input type="radio" id="radio-title-1" class="radio-title" name="htitle" value="h1" checked>H1<input type="radio" id="radio-title-2" class="radio-title" name="htitle" value="h2">H2<input type="radio" id="radio-title-3" class="radio-title" name="htitle" value="h3">H3<p class="textalign_right"><br><a href="#" id="submit" class="btn btn-default">Enregistrer</a></p></div></div>' );
    });
    $( "#submit" ).click(function() {
        event.preventDefault();
        var value_type_title = $('input[type=radio][name=htitle]:checked').attr('value');
        var value_input_tile = $('input[type=text][name=title]').val();
        if(value_type_title == "h1"){
            if(value_input_tile){
                $("#htitle").empty().append('<h1>'+value_input_tile+'</h1>');
                $(".form").css('display',('none'));
            }
            else{
                alert("Vous devez taper un titre !");
            }
        }
        else if(value_type_title == "h2"){
            if(value_input_tile){
                $("#htitle").empty().append('<h2>'+value_input_tile+'</h2>');
                $(".form").css('display',('none'));
            }
            else{
                alert("Vous devez taper un titre !");
            }

        }
        else if(value_type_title == "h3"){
            if(value_input_tile){
                $("#htitle").empty().append('<h3>'+value_input_tile+'</h3>');
                $(".form").css('display',('none'));
            }
            else{
                alert("Vous devez taper un titre !");
            }
        }
    });
})(jQuery);

3 réponses


vavoir
Auteur
Réponse acceptée

J'ai fini par réusir a envoyer le contenu dans la bdd. Cela dit sa va être trop long de dévolpé seul.

Le problème c'est que tu essayes d'affecter à un élément html pas encore présent une action. Pour pouvoir faire quelque chose du genre, tu va devoir utiliser une fonction qui va écouter le dom. La fonction on() est ce que tu cherches tu va devoir faire quelque chose du genre :

$(document).on("click","#htitle", function()) {
  $("#htitle").empty().append('<h2>'+value_input_tile+'</h2>');
});

Bon, je ne te promets rien je n'ai pas testé :/.

vavoir
Auteur

@lud00 Bonsoir
Pardon de répondre presque 1 mois plus tard. Je ne suis pas parvenu à faire fonctionner ton code malgré la doc.
Mais surtout je viens de me rendre compte que se simple clique sur ce bouton enregistrer il y a plusieur action.
Premièrement il faut cacher le formulaire qui permet d'éditer le contenu et affihcer le contenu mais en plus demander; via de l'ajax probablement; d'enregistrer le contenu d'une div dans une bdd !

La soirée va être longue...