0
votes

Comment puis-je ajouter un formulaire chargé AJAX après que la DIV a été cliquée?

J'ai une liste d'éléments sur une page Web. Je souhaite charger un formulaire via Ajax chaque fois que je clique sur n'importe quel élément de la liste. Le HTML ressemble à ceci: xxx pré>

Mon objectif est que si l'utilisateur clique sur le premier "élément-div", un formulaire doit être chargé à l'aide de Ajax. La forme chargée doit être insérée après le "élément-div" ... quelque chose comme ceci: p> xxx pré>

Je ne peux pas comprendre pourquoi cela ne fonctionnera pas. Voici mon code JQuery: P>

$(document).ready(function(){
  $(".item").click(function(){
    $(this).after().load("loadform.php");
  });
});


7 commentaires

Vous pouvez utiliser jQueryserafter () méthode, w3schools.com/jquery/html_insertafter.asp Ou .Append () Méthode API.JQUERY.com/Append


Je pense que ça ne fonctionne pas @jordijordi


Vous ne pouvez pas utiliser de charge () avec après (). Lorsqu'une réponse réussie est détectée (c'est-à-dire lorsque textustatus est "Succès" ou "NotModified"),


@Jinesh Peut-être que ce s n'est pas fonctionne, je ne donne pas ce lien avec les résultats différents car, l'Ajax charger les résultats, le problème est que le problème est de savoir comment il est inséré dans le DOM. jsfiddle.net/designaroni/b33tl7hu


@GOWIRE Puis-je savoir où se trouve l'article-Div?


@Jinesh: Alors, comment puis-je combiner charge () avec après ()? C'est ma question ... Je veux que le code HTML chargé soit ajouté après que mon diviqué a cliqué


Vous pouvez vérifier ma réponse. Vous pouvez utiliser $ .GET ou $ .AJAX pour ajouter du contenu dans Div.


4 Réponses :


0
votes

Peut-être essayer le moyen ci-dessous. Obtenez les données de PHP, puis insérez-la à l'aide de la fonction après la fonction.

$.get('loadform.php', function(data){ 
    $(this).after(data); 
  });


1 commentaires

J'ai essayé cela. Cependant, cela ne semble pas fonctionner correctement. Dans la console Edge, je peux se faire une erreur "script5007: impossible d'obtenir la propriété" crédocumentfragment "de référence non définie ou null" (et une référence dans jquery.min.js) si je remplace $ (this) avec $ (". élément") Ça fonctionnera (mais le formulaire est bien sûr ajouté après chaque article-DIV. Il semble y avoir des problèmes d'utilisation "Ceci" ... ???



0
votes

Vous ne pouvez pas utiliser de charge () avec après (). Lorsqu'une réponse réussie est détectée (c'est-à-dire lorsque TextStatus est «Succès» ou «NotModified»), Obtenir la méthode ci-dessous.

$(document).ready(function(){
      $(".item").click(function(){
         $.get('loadform.php', function(data){ 
        $(this).after(data); 
       });

      });
    });


3 commentaires

Merci ... mais il semble que l'utilisation de $ (ceci) .Après () ne fonctionne pas ... mais $ (". Article"). Après () semble fonctionner ... hmm


Pouvez-vous accepter ma réponse monsieur si cela vous est utile.


Les réponses de code seulement sont considérées comme une qualité médiocre: assurez-vous de fournir une explication de votre code et de la manière dont il résout le problème. Cela aidera les adresseurs et les futurs lecteurs si vous pouvez ajouter plus d'informations dans votre message. Voir aussi Expliquer entièrement les réponses basées sur le code: Meta. stackexchange.com/questions/114762/...



0
votes

Cela se passe parfois comme si vous avez inséré un nouveau code HTML dans DOM avec jQuery, vous suivrez cette procédure. Cela rafraîchira le DOM derrière la vue. Cela peut vous aider, un test simple sans Ajax. Vous avez une erreur dans votre demande AJAX, assurez-vous d'abord de console.log (données) vos données de retour, puis appendez-la. Merci. xxx

Un simple test Jsfiddle


0 commentaires

1
votes

Je n'ai pas d'extraits factice quelque part sur Internet où je peux charger du contenu factice pour simuler votre loadform.php code> mais je l'ai testé localement et ça marche.

  1. Tout d'abord, vous joignez Cliquez sur l'événement, vous pouvez également utiliser sur ('Cliquez sur', fonctionner ...) CODE> LI>
  2. Vous stockez l'élément cliqué dans CurialItem code> li>
  3. Vous faites la demande Ajax avec $. Obtenez CODE> LI>
  4. En cas de succès, appendez la requête AJAX au résultat de l'élément enregistré CurialItem code> li> ol>

    p>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="item">
        ... some html code for the first item ...
    </div>
    <div class="item">
        .. some html code for the next item ...
    </div>


0 commentaires