Ich möchte Daten von meinem Controller an ein JavaScript übergeben, das ein Google-Balkendiagramm verarbeitet.
Komponistin
$tmp = 6;
return view('pages.template', ['tmp' => $tmp]);
Von meinem template.blade.php
aus rufe ich das Google Chart auf
<div id="chart_div"></div>
.js Datei:
var tmp = 6;
var tmp2 = parseInt('{!! $tmp !!}');
var data = google.visualization.arrayToDataTable([
['comment1', 'comment2'],
["- 6 days", tmp],
["- 5 days", tmp2],
["- 4 days", 31],
["- 3 days", 12],
["- 2 days", 10],
["- 1 day", 3],
["today", 4]
Der 2. Balken von Google-Bar-Chart ist leer ....
Aber dort sollte meine Variable angezeigt werden.
Wie löse ich dieses Problem?
4
Timo
13 Aug. 2015 im 13:43
3 Antworten
Beste Antwort
Einfach ersetzen:
var tmp2 = parseInt('{!! $tmp !!}');
Durch :
var tmp2 = parseInt(<?php echo $tmp; ?>);
Und es sollte funktionieren.
2
Zakaria Acharki
13 Aug. 2015 im 11:14
Die Variable $tmp
scheint in der Datei .js
nicht erfolgreich analysiert worden zu sein. Warum fügst du den Code nicht in die .js
Datei in template.blade.php
ein?
-1
Eddy
13 Aug. 2015 im 11:09
Das hat bei mir funktioniert
<script type="text/javascript">
var tmp = {!! json_encode($tmp->toArray()) !!};
console.log(tmp);
</script>
In Ihrem Controller können Sie Folgendes tun
public function index()
{
$tmp = Tmp::get();
return view('tmp.index', compact('tmp'));
}
0
Nemo
30 Aug. 2019 im 08:58