0

私はHTML5が初めてで、キャンバスデータを保存する方法を知りたいだけです(キャンバスに正方形を描きました)。データベースに x、y、h、w または縮尺を保存し、そのデータを使用して図面を再作成します。これどうやってするの ?

ありがとうございました。

4

3 に答える 3

2

それらをmysqlデータベースまたはサーバーファイルに保存できます。

mysql の場合、entities という名前のテーブルを必要な列または 1 列で作成し、保存するデータをシリアル化します。

例えば

id | x | y | h | w | scale
1    4   4   4   4    0.5

また

$object_cube = array();
$object_bube['x'] = 4;
$object_bube['y'] = 4;
$object_bube['h'] = 4;
$object_bube['w'] = 4;
$object_bube['s'] = 0.5;

次に、シリアル化して PDO クエリを作成します

$host =     "localhost";
$user =     "someuser";
$pass =     "somepass";
$database = "db_name";

$db = new PDO("mysql:host=$host;dbname=$database", $user, $pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")) or die("Connection error!");
$ser_obj = serialize($object_cube);
$query = "INSERT INTO entities ('cube') VALUES (:object)";
$params = array(':object' => $ser_obj );
db_query($query, $params);

function db_query($q,$p = array())
{
    global $db;

    if($stmt = $db->prepare($query))
    {

        if(count($p) > 0)
        {
            foreach ($p as $key => $value) {
                $stmt->bindParam($key,$value);
            }
        }

        $stmt->execute();

    }

}

これは保存を処理する必要があり、データベースをマイニングして必要なときにいつでも必要なものをロードするのはあなた次第です:)

AJAX -> http://www.w3schools.com/ajax/default.asp および php や asp などのサーバー側言語に精通している必要があります。それ以外の場合は、ローカルに保存できます。

于 2013-01-21T08:15:48.480 に答える
0

サーバー上のデータベースにアクセスするには、ユーザーのWebブラウザーからデータを受信し、それをデータベースに送信するサーバー側のアプリケーションが必要です。

クライアントとサーバー間の通信は、 XmlHttpRequestまたはWebSocketsを使用して実装できます。

サーバー上で実行されるWebアプリケーションは、NodeJS、PHP、ASP.NET、JSP、Django、Ruby on Rails、またはその他のサーバー側のWeb開発テクノロジーで実装できます。

または、サーバー側のプログラミングなしで実行する場合は、データをユーザーlocalStorageにローカルに保存することもできます。

于 2013-01-21T08:13:28.470 に答える
0

考えられる解決策は、すべてのオブジェクト データを配列に格納し、サーバーに送信する前にシリアル化することです。

GraphicObjects = new Array();
GraphicObjects.push({
    x: 10,
    y: 10,
    w: 100,
    h: 200,
    scale: 0.5
}); // Write a function for adding new objects, that's just an example
$.post('urlToPostTo', data: GraphicObjects.stringify());

後で JSON データを取得して、画像を再描画します。

于 2013-01-21T08:27:15.567 に答える