funkervogt
Goto Top

Kurze Frage zu einer PHP Funktion bzw Wertezuweisung.

Guten Morgen,

dieser Codeschnipsel

require_once 'phplot/phplot.php';  
$plot->SetTitle('Zaehlpunkte: Zp1, Zp2, ZP3');  

speziell die zweite Zeile, stellt mich vor die Frage:

Wie bekomme ich dieses mit Variablen befüllt.
Hab diverses schon probiert und seh wahrscheinlich den Baum vor lauter Wäldern nicht (oder so)!

Wäre für Hilfe dankbar!


Gruss

Uwe

Content-Key: 220965

Url: https://administrator.de/contentid/220965

Printed on: April 25, 2024 at 00:04 o'clock

Member: colinardo
colinardo Nov 01, 2013 updated at 08:38:41 (UTC)
Goto Top
Hallo Uwe,
hast du's schon so probiert:
$punkt1 = 10;
$punkt2 = 20;
$punkt3 = 30;
$title = 'Zaehlpunkte: '.$punkt1.','.$punkt2.','.$punkt3;  
$plot->SetTitle($title);
oder alternativ dann so:
$plot->SetTitle("Zaehlpunkte: $punkt1, $punkt2, $punkt3");  

Grüße Uwe
Member: FunkerVogt
FunkerVogt Nov 01, 2013 at 08:47:56 (UTC)
Goto Top
Macht er wie verrückt.. Cool!

und wie mache ich das mit:

$plot->SetLegend(array('ZP1', 'ZP2', 'ZP3'));  

???
Member: colinardo
colinardo Nov 01, 2013 at 09:01:58 (UTC)
Goto Top
wenn deine Variablen $ZP1,$ZP2, etc. heißen probier's mal so:
$plot->SetLegend(array($ZP1, $ZP2, $ZP3));
Member: FunkerVogt
FunkerVogt Nov 01, 2013 at 09:30:20 (UTC)
Goto Top
also ...

so gehts:

$punkta = "ZP1";  
$punktb = "ZP5";  
$punktc = "ZP9";  
$title = 'Zaehlpunkte: '.$punkta.','.$punktb.','.$punktc;  
$title2 = $punkta.','.$punktb.','.$punktc;  

$plot->SetLegend(array($punkta, $punktb, $punktc));

So gehts leider net:
$plot->SetLegend(array($title2));

Es muss aber die zweite Variante sein, da ich eine unterschiedliche
Anzahl von $punkt# habe. Also mal einen, mal 3 usw.!

:|
Member: colinardo
colinardo Nov 01, 2013 at 09:43:17 (UTC)
Goto Top
laut Doku von $plot geht auch ein String als Parameter, dann sieht das so aus:
$plot->SetLegend($title2);
Member: FunkerVogt
FunkerVogt Nov 01, 2013 at 09:50:24 (UTC)
Goto Top
Nicht ganz...

irgendwo fehlt dann ein Trenner.
Phplot stellt ja mit "SetLegend" eine Legende der Punkte mit definierten Farben dar.

Normal sollte sein:
ZP1 "Farbe1"
ZP5 "Farbe2"
ZP3 "Farbe3"

Wenn ich das als String einfüge (wie vorgeschlagen) habe ich:

ZP1,ZP5,ZP3 "Farbe1".

Blöd ne?
Member: colinardo
colinardo Nov 01, 2013 at 10:09:03 (UTC)
Goto Top
wie bitte ändern sich deine Anzahl an Variablen im Code ??
Du musst halt das Array mit Inhalt dynamisch erzeugen bzw. Einträge hinzufügen und dann dieses Array an SetLegend übergeben, ganz einfach fertig!
$array_legend = array($punkta,$punktb,$punktc);
$plot->SetLegend($array_legend);
oder ich versteh nicht was du sonst willst ....
Member: FunkerVogt
FunkerVogt Nov 01, 2013 at 10:23:08 (UTC)
Goto Top
Die Nutzer haben die Möglichkeit Zählpunkte auszuwählen.
Sprich ..
User A wählt z.B. Zählpunkt 1, 3 und 12
User B nur Zählpunkt 4.

desdawegen .. hat z.B. das SetLegend(Array) entweder:
$punkta, $punktb und $punktc mit den Werten ZP1, ZP3 und ZP12

oder nur

$punkta mit dem Wert ZP4.

Die Anzahl der Zählpunkte ($punkt#) sind also nicht in der Anzahl genau definiert.
Member: colinardo
colinardo Nov 01, 2013 updated at 13:59:25 (UTC)
Goto Top
einfach mit einer Schleife oder einer IF-Abfrage die ausgewählten Punkte durchlaufen und die Punkte dann zu einem Array mit array_push($array_legend,'ZPx') hinzufügen, dann brauchst du keine festen Variablen verwenden...Fertig.
Member: FunkerVogt
FunkerVogt Nov 03, 2013 at 09:47:52 (UTC)
Goto Top
Yup ... geht!

Danke Uwe