2017-03-06 3 views
0

Wenn ich versuche, dd ($ Conv) die Daten sind da, aber ich kann sie immer noch nicht im Skript angezeigt. Wer weiß, was das Problem ist, habe ich viele Möglichkeiten ausprobiert, aber sie scheinen nicht zu funktionieren.Anzeige Laravel Variable mit Javascript

<h4>{{$row->transcript_text}}</h4> 
    <?php $conv = json_encode($row->transcript_text); ?> 
    <script type="text/javascript"> 
     function splitArray() { 
      var myStr = <?php echo $conv; ?>; 
      var strArray = myStr.split(/(?= \| \d)/); 

      // Display array values on page 
      for (var i = 0; i < strArray.length; i++) { 
       $("body").addClass('col-lg-offset-1').append("<h4>" + strArray[i] + "</h4>"); 
      }) 
     } 
     splitArray(); 
    </script> 
+0

gibt es einen Fehler in der Konsole? Wenn nicht, was ist das generierte HTML? – ValLeNain

+0

Danke für die Frage ValLeNain, Kein Fehler keine Daten, ich habe nur die leere Seite. Wenn ich es anders mache, kann ich die Daten anzeigen (was bedeutet, dass sie da sind), aber ich muss diese teilen, deshalb muss ich diesen Weg gehen. –

+0

kein Fehler, keine Daten? Und Sie sind sicher, dass "$ history" definiert ist, nicht leer und iterierbar? – ValLeNain

Antwort

1

Ich weiß nicht, welche Version von Laravel Sie verwenden, aber die empfohlene Art und Weise einfache PHP in Ihrem HTML-Templates einzubetten ist mit der @php Notation (vgl doc). Wie auch immer, das würde ich versuchen zu vermeiden. Stattdessen hat Laravel Blade native Möglichkeiten, das zu tun, was Sie tun möchten.

@if(! empty($history)) 
    @foreach($history as $row) 
    <script type="text/javascript"> 
     function splitArray() { 
      var myStr = JSON.parse("{{json_encode($row->transcript_text) }}"); 
      var strArray = myStr.split(" | 0"); 

      // Display array values on page 
      for (var i = 0; i < strArray.length; i++) { 
       $("body").addClass('col-lg-offset-1').append("<h4>" + strArray[i] + "</h4>"); 
      } 
     } 
    </script> 
    <body onload="splitArray()" style="color: lime"> 
    </body> 
    @endforeach 
+0

Ich benutze Laravel 4.2, aber diese Lösung funktioniert nicht, immer noch nur leere Seite –

+0

ValLeNain l habe meine Frage aktualisiert. –