Je veux demander comment puis-je appeler une valeur de javascript à lame html dans laravel.
Voici mon code JavaScript:
$users = User::all();
$students = Students::all();
return view('admin.assignStudent', compact('users','students'));
Voici mon Html Laravel:
<select id="teacherId" onchange="valueFunction()">
<option>Select Teacher</option>
@foreach($users as $user)
<option value="{{$user->id}}">{{$user->name}}</option>
@endforeach
</select>
{{$users[]->name}}
<output id="output"></output>
Code du contrôleur:
<script type="text/javascript">
function valueFunction(){
var output = document.getElementById('teacherId').value;
console.log(output);
document.getElementById('output').innerHTML = output;
}
</script>
As J'obtiens la valeur dans la balise de sortie, mais je veux appeler la valeur de javascrpt dans {{$ users [output] -> name}} ici.
Merci.
4 Réponses :
Dans laravel ou tout autre framework PHP, vous devez appeler la fonction de script java comme suit:
{{''}}
Laravel Html
<script type="text/javascript">
var users = @json($users);
function valueFunction(){
var userId = document.getElementById('teacherId').value;
var user = array.filter(function(arr){return arr.id == userId})[0];
console.log(user);
document.getElementById('output').innerHTML = user.name;
}
</script>
Merci pour votre réponse, mais je veux l'appeler de manière dynamique, comme suit: var sorties = document.getElementById ('teacherId'). Value; document.getElementById ('output'). innerHTML = '{{$ user [output] -> name}}'; mais je ne peux pas appeler la sortie dans '{{$ user [output] -> name }} ', il renvoie une erreur ** Utilisation de sorties constantes non définies **
Mon anglais n'est pas bon. Pouvez-vous décrire l'entrée et la sortie, le modèle?
Pas de problème, la sortie est la valeur du menu déroulant en html, le menu déroulant obtient les options de la boucle. donc je reçois la valeur sélectionnée en javascript et je veux envoyer la valeur au html pour imprimer la valeur en html.
Je veux vraiment vous aider, mais je ne comprends vraiment pas ce que vous voulez. Évitez de perdre votre temps, les autres peuvent mieux vous aider
va éditer mon code en question, cela peut vous aider à mieux le comprendre
Je comprends. 2 voies: 1> en utilisant l'API avec AJAX. 2> Créez un tableau javascript à partir de $ users. Je pense que si 2 manière puis plus facile
pouvez-vous me guider comment créer ce tableau car, j'obtiens une erreur lors de la création du tableau.
Vous ne pouvez pas le faire directement, car JavaScript n'est exécuté que côté client sans interaction avec le fichier lame.
Une suggestion est de configurer une API dans Laravel, utilisez ajax , XMLHttpRequest a > ou fetch en JavaScript et POST (ou d'autres verbes HTTP) sur la route. Traitez et renvoyez les données dans Laravel. Enfin, affichez-le dans le DOM en utilisant JavaScript.
Ou si vous souhaitez que le modèle de lame utilise directement la valeur, vous pouvez utiliser un formulaire HTML pour publier sur Laravel, traiter les données, puis renvoyer la vue avec les données. Pour ce faire, l'utilisateur doit accéder à une autre page (ou à nouveau à la même page).
essayez ceci et voyez si cela fonctionne:
<script type="text/javascript">
function valueFunction(){
var output = document.getElementById('teacherId').value;
console.log(output);
var data = {!! $sites[output]->name() !!};
document.getElementById('output').innerHTML = data ;
}
</script>
Merci d'avoir répondu, Testé cette erreur d'obtention: Utilisation d'une sortie constante non définie - supposée «sortie»
changez . à
Votre solution actuelle est la meilleure! Imprimer la valeur en mélangeant javascript et php est une mauvaise idée.
Je veux imprimer des détails sur l'utilisateur sélectionné, c'est pourquoi j'ai besoin d'un identifiant pour obtenir les données de la base de données
pouvez-vous montrer votre code de contrôleur? Merci
code contrôleur ajouté