JSライブラリ、DojoのEditorの利用について
リッチテキスト形式のエディタを実装したフォームを作りたいがために、Dojoライブラリ内のDijitにあるEditorを利用しようと思っています。
ライブラリをダウンロードし、設置、Editorの表示までは難なく出来たのですが、Editorで作成・編集したリッチテキスト形式のデータをPHPに渡すことができません。
以下、ソースです。(一部簡略化)
form.php-----------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="note-style.css">
<style type="text/css">
@import "../../js/dijit/themes/tundra/tundra.css";
@import "../../js/dojo/resources/dojo.css"
</style>
<script type="text/javascript" src="../../js/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.Editor");
dojo.require("dijit._editor.plugins.AlwaysShowToolbar");
dojo.require("dijit._editor.plugins.FontChoice");
dojo.require("dijit._editor.plugins.TextColor");
dojo.require("dijit._editor.plugins.LinkDialog");
</script>
</head>
<body class="tundra">
<center>
<div id="cover">
<div id="main2">
<br>
<center>
<div id="note">
<div id="note-top"> </div><div id="note-cont">
<div id="note-cov">
<?php
switch($_GET['mode']){
case "new" :
newForm();
break;
case "edit" :
editForm();
break;
case "del" :
delForm();
break;
default :
error("正しくないMODEです。(1)");
}
function newForm() {
?>
<br>
<br>
<form method="post" action="make.php">
<input type="hidden" name="mode" value="new">
投稿者名 : <input type="text" name="name" size="30" value="<?echo$_SESSION['name'];?>"><br>
<br>
記事題名 : <input type="text" name="title" size="50" value="<?echo$_SESSION['title'];?>"><br>
<br>
記事本文 : <br>
<div class="textarea">
<textarea name="field" dojoType="dijit.Editor" height="250" width="300" id="editor_field"
plugins="['cut','paste','copy','|','bold','italic','underline','|','justifyLeft','justifyCenter','justifyRight','|','foreColor',{name:'dijit._editor.plugins.FontChoice', command:'fontSize', custom:[2,3,4,5,6]},
'insertImage','|','createLink']">
<?echo$_SESSION['field'];?>
</textarea>
</div>
<br>
<br>
パス : <input type="password" name="pass" size="20"><br>
<br>
<br>
<input type="submit" value="投稿">
</div>
<br>
</form>
<?php
}
?>
<br><br>
</div>
</div>
</div>
<br>
<br>
</center>
</div>
</div>
</center>
</body>
</html>
--------------------------------------------
make.php------------------------------------
<?php
echo "テキストフィールド : ".$_POST['field']."<br>\n";
echo "投稿者名 : ".$_POST['name']."<br>\n";
exit;
?>
--------------------------------------------
ディレクトリ構造(Folderは仮名)
public_html>js>
dojo
dijit
dojox
public_html>Folder>Folder>
form.php
make.php
設置サイトURL
http://www.usamimi.info/~goldwing/himawari/note/form.php?mode=new
DojoのEditorでリッチテキストを入力、Submitを押すと
make.phpにデータが渡されるはずなのですが、投稿者名は表示され、テキストフィールド内の情報が表示されません。
情報の取得方法、もしくは送信方法が間違っていると思いますが、
Google等で検索してもこれといった解決方法は見つかりませんでした。
お忙しいところ申し訳ございませんが、解決方法をご存知の方、どうかご教授をよろしくお願い致します。
お礼
auty様> アドバイスありがとうございます。 私自身、まだdojoのバージョンの情報や基本的な使い方も分からず、 auty様のご回答の内容が汲み取れなかったので、個人的にもう一度 調べ直しました。 http://ymdmstk.cocolog-nifty.com/blog/2007/07/post_9d72.html のサイトを参考になんとか表示させる事ができました。 多分こちらで使用されていたdojoのバージョンは古いものだと思われますが、きちんと順を追ってダウンロードしてやってみたら、 やはり、他にもsrcフォルダやらも含めたディレクトリとして、 dojo.jsを読み込まなければいけないんだと分かりました。 バージョンが古い事を指摘して頂き、ヒントを与えて頂けた事に 感謝しております。 ありがとうございました。