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: 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> 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");
});
});
4 Réponses :
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); });
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) code> avec
$ (". élément") code> Ç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" ... ???
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); }); }); });
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/...
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 Un simple test Jsfiddle P> p> console.log (données) code> vos données de retour, puis appendez-la. Merci.
Je n'ai pas d'extraits factice quelque part sur Internet où je peux charger du contenu factice pour simuler votre p> loadform.php code> mais je l'ai testé localement et ça marche.
sur ('Cliquez sur', fonctionner ...) CODE> LI>
CurialItem code> li>
$. Obtenez CODE> LI>
CurialItem code> li>
ol>
<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>
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.