Javascript, Werte via PHP füllen
Lasterbubu
- javascript
Hallo,
was ist besser hinsichtlich best practice:
var save = function() {
var wert = '<?php echo $wert; ?>';
var numerischerWert = <?php echo $numWert ? $numWert : 0; ?>;
doSomething(wert, numerischerWert);
}
save();
oder
var setWert = function(v) {
var wert = v;
}
var setNumerischerWert = function(v) {
var numerischerWert = v;
}
var save = function() {
doSomething(wert, numerischerWert);
}
setWert('<?php echo $wert; ?>');
setNumerischerWert( <?php echo $numWert ? $numWert : 0; ?>);
save();
eigentlich beides nicht so schön. Wie macht man das denn nun richtig? Wie belegt man JavaScript-Variablen am besten mit Werten, die von PHP kommen?
Kommt drauf an. Sind die Setter sowieso vorhanden? Dann würde ich zur zweiten Lösung raten, sonst eher zur ersten. Generell würde ich es aber vermeiden Javascript und PHP Code zu vermischen und eher zu einer Template-Engine raten.
Bei der zweiten Lösung solltest du aber beachten, dass die variablen "wert" und "numerischerWert" nicht in den jeweiligen Setter-Methoden deklariert werden. Sonst sind sie für "save" immer "undefined".
Kommt drauf an. Sind die Setter sowieso vorhanden? Dann würde ich zur zweiten Lösung raten, sonst eher zur ersten. Generell würde ich es aber vermeiden Javascript und PHP Code zu vermischen und eher zu einer Template-Engine raten.
Warum genau? Was ist der Vorteil? PHP ist doch schon eine Template-Sprache, wozu noch eine Template-Engine (für diesen Fall jetzt)? Für andere Fälle sehe ich es ein.
Hintergrund:
ich habe sehr viele Werte, die aus einer DB kommen. Diese sollen clientseitig JavaScript Variablen mit Werten belegen, damit damit dann verschiedenes kalkuliert werden kann.
Warum genau? Was ist der Vorteil?
Es widerspricht der Trennung von serverseitigem und klientseitigem Code. Das erschwert die Kommunikation unter Backend- und Fronteend-Entwicklern ungemein. Die Wartbarkeit wird um einiges verkompliziert.
PHP ist doch schon eine Template-Sprache, wozu noch eine Template-Engine (für diesen Fall jetzt)?
Das heißt aber noch nicht, dass man ohne Rücksicht auf Verluste auf Bewehrte Konzepte wie MVC verzichten sollte.
Für andere Fälle sehe ich es ein.
Ich sehe es ein bei kleinen Projekten auch mal auf die schnellste Lösung zurückzugreifen.
Hintergrund:
ich habe sehr viele Werte, die aus einer DB kommen. Diese sollen clientseitig JavaScript Variablen mit Werten belegen, damit damit dann verschiedenes kalkuliert werden kann.
Dann würde ich dir dazu raten mittels Ajax die Daten zu laden. `Falls Ajax keine Option für dich ist, könnte ich mir auch vorstellen mittel PHP ein script-element vom typ "application/json" anzulegen und zu füllen. Und dieses dann mit Javascript einzulesen.
Hi,
ich habe sehr viele Werte, die aus einer DB kommen. Diese sollen clientseitig JavaScript Variablen mit Werten belegen, damit damit dann verschiedenes kalkuliert werden kann.
hast du schon mal daran gedacht, diese Werte in einem Objekt zusammenzufassen und dieses dann als separate JS-Ressource zu übermitteln? Vielleicht sogar in JSON?
Das hat den Vorteil, dass alle serverseitig vergebenen Werte übersichtlich in einer Ressource zusammen sind, die leicht zu warten ist.
Ciao,
Martin