J'essaie d'afficher des noms à partir de la base de données à l'aide d'Ajax et j'utilise une boucle foreach dans le contrôleur, mais cela ne renvoie qu'un seul nom au lieu de deux (il ne boucle pas correctement). J'ai vu des réponses, les peuples ont suggéré d'utiliser des objets dans la vue, mais pour mon cas, j'utilise Ajax en vue Comment puis-je utiliser le foreach in Ajax ou y a-t-il un moyen de voir tous les noms?
J'ai essayé d'utiliser Celles-ci, mais c'était renvoyé un nom au lieu de deux. p> contrôleur p> ajax p>
3 Réponses :
Vous écrasez la valeur de Vous devez mettre le changez votre code Ajax: p > $ data code> à nouveau et à nouveau, afin qu'il puisse renvoyer le dernier nom d'utilisateur.
$ data = []; / code> hors de la boucle. et utilisez
$ data [] = $ Review-> user-> nom; code> à l'intérieur de la boucle: p>
function userRatingname() {
$.ajax({
type: "GET",
url: '{{route('userRating.name ', $id)}}',
success: function(data) {
var html = '';
data['data'].forEach(function(name) {
html += '<div>' + name + '</div>'
});
$('#userRatingname').html(html);
}
});
J'ai essayé cela avant et maintenant il s'agit du tableau de sortie: 1 [▼ 0 => "Ethan"] code> Un seul nom @tsaikoga
@ user11710915 S'adresse-t-il que les critiques de ce produit ont plus d'un utilisateur?
Ouais suis sûr parce que le produit a deux commentaires avec différents utilisateurs @tsaikoga
@ user11710915 Qu'en est-il de Review :: Où ("product_id ', $ ID) -> PLUCK (" user_id') code>, a-t-il renvoyé deux user_ids
Yeah #Items: tableau: 2 [▼ 0 => 1 1 => 4] code> @tsaikoga
@ user11710915 pouvez-vous poster la méthode de la relation?
La chose que je viens de comprendre est que, dans cette ligne foreach ($ produit-> Avis sous forme d'€ Avis) Code> Si je le fais DD ($ produit-> Avis) Je vois le tableau de deux commentaires mais si je le fais DD (€ Avis) Cela ne montre qu'un seul avis. @Tsaikoga
Laissez-nous Continuer cette discussion en chat .
Merci pour la réponse, mais j'ai un problème pour afficher les étoiles avec la réponse que vous venez de fournir pouvez-vous vous aider s'il vous plaît? @Tsaikoga
@ user11710915 Il n'y a pas d'étoiles dans votre code. Je pense que c'est le problème du CSS. rien à voir avec cette question.
Oui, je veux dire, je voulais afficher le nom, le titre et les étoiles (Stars de critiques), donc je savais que si on se résume, l'autre sera facile à résoudre mais maintenant j'ai trouvé qu'il est difficile d'afficher les notes à l'aide de
@ user11710915 Désolé, je n'ai aucune idée du dessin de conception de votre frontend, ne savez pas comment afficher tous ces éléments. C'est au-delà de la portée du problème.
J'ai le script (est juste un script court) si vous voulez vous aider, je peux vous montrer parce que le problème que j'ai est que je ne sais pas comment je peux connecter les données que je reçois du contrôleur à cela en vue. @Tsaikoga
@ user11710915 Je pense que vous feriez mieux d'ajouter une nouvelle question et de poster les explications sur les étoiles, le titre, ... des colonnes et comment voulez-vous les afficher. Var HTML = ''; données ["données"]. foreach (fonction (nom (nom) {html + = '
Essayez celui-ci si son droit me dit.
$data = [];//define empty array. $products = Product::where('id','=',$id)->with('reviews.user')->first(); foreach ($product->reviews as $review){ $data[]= [$review->user->name]; }
La sortie est Array: 1 [▼ 0 => Array: 1 [▼ 0 => "Ethan"]] Code> @ m.idrish
idrishmakda52.im@gmail.com Envoyez-moi votre code je vais résoudre votre problème
Pouvez-vous simplement le résoudre ici pour que cela soit utile pour les autres aussi. @ M.IDRISH
ok je veux voir dd ($ produits = produit :: Où ('id', '=', $ id) -> avec ("avis.utilisateur") -> Premier ()); Commenter moi une sortie complète de ce dd
Vous avez oublié d'ajouter la balise "CSRF" dans votre appel AJAX P>