Zweig und javascript
bin ich eine Seite erstellen, die zeigt ein Diagramm je nach Typ in der Auswahlliste ausgewählt
<div id="chartdiv"></div>
<select name="graphe" id="identifiantDeMonSelect">
<option value="Column2D">Column2D
<option value="Column3D">Column3D
<option value="Pie3D">Pie3D
<option value="Pie2D">Pie2D
</select>
<input type="submit" value="Afficher" onclick="ajax()">
<script type="text/javascript">
function ajax(){
var xhr
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xhr !=null) {
xhr.onreadystatechange = function() { type1(xhr); };
xhr.open("GET", "{{ path('Ajax')}}", true);
xhr.send(null);
} else {
alert("The XMLHttpRequest not supported");
}}
function type1(xhr){
var docXML= xhr.responseText;
var val_type = getSelectValue('identifiantDeMonSelect');
var type = val_type+"";
var str="{{ asset('Charts/Pie2D.swf') }}";
var chart = new FusionCharts(str, "ChartId", "600", "400", "0", "0");
chart.setXMLData(docXML);
chart.render("chartdiv");
}
function getSelectValue(selectId)
{
var selectElmt = document.getElementById(selectId);
return selectElmt.options[selectElmt.selectedIndex].value;
}
</script>
Wenn ich jetzt ersetzen Sie einfach var str="{{ asset('Charts/Pie2D.swf') }}";
mit "{{asset('Charts/'+type+'.swf') }}"
um dynamisch ändern Sie den Typ des Diagramms, die ich erhalten folgende symfony-Fehler : "Variable "type" does not exist in "
. Und wenn ich "{{ asset('Charts/"+type+".swf') }}"
(ich ersetzt ' durch ") bekomme ich die Seite und wenn ich auf den submit-button passiert nichts und in der console (chrome console) bekomme ich diesen Fehler "GET http://127.0.0.1:8888/dashboard2/Symfony/web/Charts/"+type+".swf 404 (Not Found)
". Sie nimmt es, wie es ist "+type+"
;
Natürlich brauche ich Hilfe, ich weiß nicht, ob es eine Verkettung problem oder es hat etwas zu tun mit dem Zweig und dem asset-Funktion. Vielen Dank im Voraus
- möglich, Duplikat der Mit Javascript variable in Twig-template mit Silex-framework
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das ist nicht möglich. Sie cant mix javascript vars mit Zweig, weil ein client, der andere server ist.
Statt mit {{asset}} hier können Sie eine route zu Holen Ihr Kapital und verwenden Sie asset-Funktionalität in Aktion.
Sie dann verwenden können, diese:
https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
oder eine billige Abhilfe, wie dieser: