PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dynamische grafische Kurvendarstellung im Internet


Maverick-X
2002-09-10, 08:29:19
Hi,

wenn ich im Internet dynamisch eine Kurve zeichnen will (Daten auswählen, abhängig davon Kurve zeichnen) mit welcher Internetprogramierspracha löse ich dass am besten ?

Wudu
2002-09-10, 09:00:15
Mit PHP geht das, ist aber keine einfache Sache. Das Zeichnen von Grafiken kannst du mit den Image Functionen in verbindung mit der GD Libary (linux only so viel ich weiss) verwirklichen. Wenn du glück hast gibt es irgendwo eine PHP Classe für das Zeichnen von Graphen. Ich habe es leider selbst noch nie benutzt und kann dir keine genauen Beispiele zeigen, oder nennen. Aber im Web findest du mit Garantie ein Sample!

harkpabst_meliantrop
2002-09-26, 23:47:25
Adobe SVG (http://www.adobe.com/svg) ist da momentan scheinbar besonders angesagt ... aber ich kann's nicht :) und ein Plugin braucht man natürlich (?) auch.

Ach ja, und im Mozilla funktioniert das aktuelle Plugin nicht mit embedded SVG, weil Adobe leider bei der Programmierung auf einer unfrozen Mozilla-API aufgesetzt hat. Und da der Teufel ein Eichhörnchen ist, hat sich tatsächlich bis zur 1.0 noch was daran geändert ...

Unregistered
2002-10-02, 07:54:17
thx für die Info, gibt es auch ein gutes kostenloses Programm um SVGs zu erzeugen ?

Maverick-X
2002-10-02, 15:33:41
und noch ne Anfängerfrage, was passt hier nicht (es funktioniert einfach nicht, soll heißen, dass Eingabeformular erscheint, aber die MySQL-Tabelle "links" in der "PHPmySQL"-Datenbank wird nicht aktualisiert ?

<html>
<body>

<?php
if ($submit) {
$mysqlhost="Diese"; // MySQL-Host angeben
$mysqluser="Werte"; // MySQL-User angeben
$mysqlpwd="stimmen"; // Passwort angeben
$mysqldb="PHPmySQL"; // Gewuenschte Datenbank angeben

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

mysql_query("INSERT INTO links VALUES('$id','$url','')");

$result = mysql_query($sql,$connection);
echo "Datensatz erfolgreich aktualisiert!<br><br>";
}
?>

<form method="post" action="<? echo $PHP_SELF ?>">
ID: <input type="text" name="id" value="<? echo $id ?>" size="20"><br>
url: <input type="text" name="url" value="<? echo $url ?>" size="20"><br>
hits: <input type="text" name="hits" value="<? echo $hits ?>" size="20"><br>
<input type="submit" name="submit" value="Eintragen!">
</form>


</body>
</html>

Matthias2x
2002-10-02, 15:46:01
evtl. register_globals auf Off ?? das ist bei PHP ab 4.2.x die Standarteinstellung. Dann mußt du die Variablen $id und $url anders auslesen, etwa so:

mysql_query("INSERT INTO links VALUES('$_POST[id]','$_POST[url]','')");

harkpabst_meliantrop
2002-10-02, 16:15:19
SVG wird in XML-Synthax geschrieben. Programme um SVG zu erzeugen kenne ich nicht (was nicht viel heißt), aber es ist ja auch gerade dafür gedacht, Daten dynamisch (d.h. aus Datenbankeinträgen) zu erzeugen. "Statisches" SVG könnte man zwar schreiben, würde dem Sinn aber zuwiderlaufen.

Maverick-X
2002-10-02, 16:19:27
THX !!!!!!!!!!!!!! ;) ;D

"if ($submit)" musste ich zwar auch noch auf "if ($_POST[submit])" ändern, was mir aber auch nur dank deines Tipps aufgefallen ist.

Und ich rätsel schon den halben Tag herum, warum die ganzen Beispiele aus dem Internet nicht funktioniert haben (alle vor PHP 4.2 erstellt).

Au man ...

Maverick-X
2002-10-07, 08:46:41
was muss ich ändern damit es auch funktioniert wenn action="test.php" einstelle und den PHP-Teil in diese test.php reinkopiere ??

Matthias2x
2002-10-07, 13:40:26
eigentlich nichts, du mußt die Variablen genauso mit $_POST['VAR'] auswerten...

Maverick-X
2002-10-08, 07:46:19
Hi,

also gut hier was nicht funktioniert:

Eingabe.html:

<html>
<body>

<form method="POST" action="GDtest4.php">
<table width='350' cellspacing='1' bgcolor='#666699' align='center'>
<tr><td>
<table width='100%' bgcolor='#AAAADD'>
<tr>
<td colspan='2' align='center'>
<H3> Höhe und Breite der Grafik festlegen </H3>
</td>
</tr>
<tr>
<td>
Hoehe:
</td>
<td>
<input name="hoehe" size="20"><br>
</td>
</tr>
<tr>
<td>
Breite:
</td>
<td>
<input name="breite" size="20"><br>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="submit" value="Zeichnen">
</td>
</tr>
</tr></td>
</form>
</table>

</body>
</html>



aufgerufene PHP-Datei(GDtest4.php):
<?php
Header( "Content-type: image/png");
if ($_Post[hoehe]<1) {$hoehe=498;}
else {$hoehe=$_Post[hoehe];}
if ($_Post[breite]<1) {$breite=518;}
else {$breite=$_Post[breite];}
...


// diese Abfrage habe ich eingebaut um herrauszufinden ob überhaupt Werte in der aufgerufenen Datei ankommen, was aber nicht der Fall ist da immer die Werte 498 und 518 verwendet werden.

Matthias2x
2002-10-08, 08:01:54
Originally posted by Maverick-X
Hi,

also gut hier was nicht funktioniert:

Eingabe.html:

<html>
<body>

<form method="POST" action="GDtest4.php">
<table width='350' cellspacing='1' bgcolor='#666699' align='center'>
<tr><td>
<table width='100%' bgcolor='#AAAADD'>
<tr>
<td colspan='2' align='center'>
<H3> Höhe und Breite der Grafik festlegen </H3>
</td>
</tr>
<tr>
<td>
Hoehe:
</td>
<td>
<input name="hoehe" size="20"><br>
</td>
</tr>
<tr>
<td>
Breite:
</td>
<td>
<input name="breite" size="20"><br>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="submit" value="Zeichnen">
</td>
</tr>
</tr></td>
</form>
</table>

</body>
</html>



aufgerufene PHP-Datei(GDtest4.php):
<?php
Header( "Content-type: image/png");
if ($_Post[hoehe]<1) {$hoehe=498;}
else {$hoehe=$_Post[hoehe];}
if ($_Post[breite]<1) {$breite=518;}
else {$breite=$_Post[breite];}
...


// diese Abfrage habe ich eingebaut um herrauszufinden ob überhaupt Werte in der aufgerufenen Datei ankommen, was aber nicht der Fall ist da immer die Werte 498 und 518 verwendet werden.

Das kann nicht funktionieren, weil du die Variablen $_Post[var] anstatt $_POST[var] in deiner GDtest4.php schreibst. das _POST muss immer komplett groß geschrieben sein. Um herauszufinden ob die Variablen korrekt übergeben werden, schreib einfach vor die erste if Schleife zum testen folgendes:

echo 'Höhe='.$_POST[hoehe].'<br>';
echo 'Breite='.$_POST[breite].'<br>';

dann weißt du immer ob was übergeben wird oder nicht.

Maverick-X
2002-10-08, 08:27:47
aaah, danke funktioniert ;)

wenn man nicht auf alles achtet ...

Maverick-X
2002-10-10, 15:00:34
und noch ne Frage ;):

Wie kann ich festlegen dass ein von einem Hauptfenster aus aufgerufenes Popup-Fester erst geschlossen werden muss bevor man mit dem Hauptfenster weiterarbeite kann ??

Matthias2x
2002-10-10, 15:03:49
Beschreib mal bitte genauer was du machen willst, bzw. warum das Fenster erst geschlossen werden muß.

Maverick-X
2002-10-10, 15:23:54
Ich hab ein HTML-Formular in dass man Werte eingibt.
Wird es abgeschickt, dann wird eine PHP-Datei aufgerufen die eine Grafik abspeichert (in eine Datei) und diese dann per Javascript (öffnet diese Datei) in einem neuen Fenster öffnet (so dass nur die Grafik und der Browserrahmen zu sehen ist und nicht die ganzen Browsermenüs usw.) .

Mein bisheriger Lösungsversuch:
Ich öffne die PHP-Datei im gleichen Fenster wie das Formular (sobald man das Formular abschickt wird es durch die PHP-Datei "ersetzt"), erzeuge die Grafik, öffne diese per Javascript in einem neuen Fenster und gehe per history.back() wieder zum Formular zurück. Das hat aber bisher zur Folge dass wenn ich einfach wieder dass Formular anklicke und die Grafik offen lasse, wird diese nicht automatisch aktualisiert, weswegen ich will dass man erst das Grafik-Fenster schließen muss bevor man wieder das Formular anklicken kann.

Maverick-X
2002-10-11, 08:50:30
anderer Versuch:

ich habe die seite in 3 Frames eingeteilt, wobei nur einer sichtbar ist (html-eingabeformular).
In den zweiten lade ich das PHP script und dieses lädt dann ein javascript in den dritten frame.

Hier der dann geladene Javascript-Frame:
<html>
<body>
<?php $size = GetImageSize ("Grafik.png"); ?>
<script type="text/javascript">
<!--
var i=0;
if(i) {
Navigation.close();
Navigation = window.open("Grafik.png","Navigation","height=<?echo $size[1]?>,width=<?echo $size[0]?>");
}
else {
Navigation = window.open("Grafik.png","Navigation","height=<?echo $size[1]?>,width=<?echo $size[0]?>");
i=1;
}
// -->
</script>

</body>
</html>

Leider funktioniert auch das nicht da wohl jedesmal die Variable i wieder auf 0 zurückgesetzt wird.