Я использую утилиту jQCloud для генерации облака слов, но я не могу этого сделать.
Вот код моего контроллера:
public function consultar(Request $request)
{
$entidad = $request['entidad'];
$result = exec("python3 /root/TFGArchivos/ScriptFinal.py -o $entidad");
$opiniones = array();
$palabras = array();
foreach (json_decode($result) as $valor) {
if ($valor == 1 || $valor == -1) {
$opiniones[] = $valor;
}
else {
$palabras[] = $valor;
}
}
return view("resultado_entidad", ['entidad'=>$request['entidad'],"palabras"=>$palabras]);
}
И вот код моего взгляда:
<div id="nube" name="nube" style="width: 550px; height: 350px; position: relative;"></div>
<script>
window.onload = function ()
{
var array = <?php echo json_encode($palabras); ?>;
$("#nube").jQCloud(array);
}
</script>
Содержание $ palabras после foreach:
Array ( [0] => {text: 'deben', weight:1} [1] => {text: 'acabo', weight:1} [2] => {text: 'texto', weight:1} [3] => {text: 'arrepiento', weight:1} [4] => {text: 'quichua', weight:2} ... ) ;
Содержимое массива перед вызовом jQCloud:
{text: 'cs', weight:1},{text: 'adelante', weight:2},{text: 'acosar', weight:1},{text: 'traves', weight:1},{text: 'aviso', weight:1},{text: 'voy', weight:8},{text: 'priv', weight:1}...
Я публикую здесь короткую версию обоих, потому что они слишком длинные.
Если я объявляю массив в Javascript и передаю этот массив в jQcloud, он отлично работает.
Спасибо!
Попробуй это,
<div id="nube" name="nube" style="width: 550px; height: 350px; position:
relative;"></div>
<script>
window.onload = function ()
{
var array = [<?php echo json_encode($palabras); ?>];
$("#nube").jQCloud(array);
}
</script>
Также проверьте последовательность js при включении, она должна быть
<link rel="stylesheet" type="text/css" href="jqcloud.css" />
<!-- jqcloud css path -->
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="jqcloud/jqcloud-1.0.4.js"></script>
<!-- jqcloud js path -->
Других решений пока нет …