Ajax+PHP+XML
WEBアプリでAjaxからPHPをを呼び出し結果をXMLでかえす方法が良くわからなかった。
ネットで検索しても良いのが見つからない。
Ajaxで直接XMLを取り出すのはあるけど。
で、自分で作ってみた。
ポイントはXMLを作成するPHPのheaderの記述でタイプをxmlで定義します。
header('Content-Type: application/xml; charset=ISO-8859-1');
こうしないとAjaxの受け取りで「dataType: 'xml',」で受け取れない。
呼び出すHTML+Ajax↓↓↓↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="ja">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="imagetoolbar" content="false">
<script type="text/javascript" src="./js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btnXML").click(function(){ goXml(); });
});
function goXml() {
var myDate = new Date();
var strData = "";
$(function(){
jQuery.ajax({
url : "./testxml_aj.php?"+myDate.getTime(),
type: "POST",
dataType: 'xml',
data: strData,
timeout : 30000,
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
},
success : function(argReturn){
$('usr',argReturn).each(function(i){
alert($(this).find("id").text() );
alert($(this).find("name").text() );
});
}
});
});
}
</script>
<title>テスト</title>
</head>
<body>
<form method="post" id="TESTXML" name="TESTXML" action="./testxml.php">
testxml
</form>
<input type="button" id="btnXML" value="XML">
</body>
</html>
XMLを返すPHP↓↓↓↓
<?php
//DomDocumentを生成
header('Content-Type: application/xml; charset=ISO-8859-1');
$dom = new DomDocument('1.0', 'utf-8');
//要素「usr」を追加
$usr = $dom->appendChild($dom->createElement('usr'));
// 「usr」に要素「ID」を追加
$id = $usr->appendChild($dom->createElement('id'));
//idにテキストノードを追加
$id->appendChild($dom->createTextNode('id01234'));
// 「usr」に要素「NAME」を追加
$name = $usr->appendChild($dom->createElement('name'));
//idにテキストノードを追加
$name->appendChild($dom->createTextNode('hogehoge'));
//出力のフォーマット
$dom->formatOutput = true;
//セーブ
echo $dom->saveXML();
?>
ネットで検索しても良いのが見つからない。
Ajaxで直接XMLを取り出すのはあるけど。
で、自分で作ってみた。
ポイントはXMLを作成するPHPのheaderの記述でタイプをxmlで定義します。
header('Content-Type: application/xml; charset=ISO-8859-1');
こうしないとAjaxの受け取りで「dataType: 'xml',」で受け取れない。
呼び出すHTML+Ajax↓↓↓↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="ja">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="imagetoolbar" content="false">
<script type="text/javascript" src="./js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btnXML").click(function(){ goXml(); });
});
function goXml() {
var myDate = new Date();
var strData = "";
$(function(){
jQuery.ajax({
url : "./testxml_aj.php?"+myDate.getTime(),
type: "POST",
dataType: 'xml',
data: strData,
timeout : 30000,
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
},
success : function(argReturn){
$('usr',argReturn).each(function(i){
alert($(this).find("id").text() );
alert($(this).find("name").text() );
});
}
});
});
}
</script>
<title>テスト</title>
</head>
<body>
<form method="post" id="TESTXML" name="TESTXML" action="./testxml.php">
testxml
</form>
<input type="button" id="btnXML" value="XML">
</body>
</html>
XMLを返すPHP↓↓↓↓
<?php
//DomDocumentを生成
header('Content-Type: application/xml; charset=ISO-8859-1');
$dom = new DomDocument('1.0', 'utf-8');
//要素「usr」を追加
$usr = $dom->appendChild($dom->createElement('usr'));
// 「usr」に要素「ID」を追加
$id = $usr->appendChild($dom->createElement('id'));
//idにテキストノードを追加
$id->appendChild($dom->createTextNode('id01234'));
// 「usr」に要素「NAME」を追加
$name = $usr->appendChild($dom->createElement('name'));
//idにテキストノードを追加
$name->appendChild($dom->createTextNode('hogehoge'));
//出力のフォーマット
$dom->formatOutput = true;
//セーブ
echo $dom->saveXML();
?>
デザイン
仕事でサイト(ホームページ)を作成する事がよくあります。
その他、Windowsアプリケーションの画面なども作りますが、お客様からよく「もう少し見栄えが良くならない?」って言われます。
特にWEBアプリケーションだと、「見栄え」の注文が多いです。
デザイナーでは無いのでデザインセンスはゼロに等しいです。
オブジェクトをただ並べるだけの画面しか作れません。
下手に画像とか使うとゴチャゴチャして素人がホームページ作成ソフト等で初めて作ったホームページみたいになってしまいます。
以前、デザイン会社さんに依頼してデザインしてもらった事があるけど、やっぱプロは違うね。
同じ素材を使っているのに・・・・・
今回の仕事でも「デザインを・・・・」て言われました。
いいじゃん。どうせ特定の人しか使わないシステムなんだから・・・・って言えません。
その他、Windowsアプリケーションの画面なども作りますが、お客様からよく「もう少し見栄えが良くならない?」って言われます。
特にWEBアプリケーションだと、「見栄え」の注文が多いです。
デザイナーでは無いのでデザインセンスはゼロに等しいです。
オブジェクトをただ並べるだけの画面しか作れません。
下手に画像とか使うとゴチャゴチャして素人がホームページ作成ソフト等で初めて作ったホームページみたいになってしまいます。
以前、デザイン会社さんに依頼してデザインしてもらった事があるけど、やっぱプロは違うね。
同じ素材を使っているのに・・・・・

今回の仕事でも「デザインを・・・・」て言われました。
いいじゃん。どうせ特定の人しか使わないシステムなんだから・・・・って言えません。

Fierfoxの表示がおかしい
Fierfoxの表示がおかしい。

Ver 3.6にアップデートした頃から新たにタブを追加表示すると上部のツールバー部分の表示が崩れる。
該当のOSはWindowsXPです。Windows7では大丈夫みたい。
ググってみたけどそんな情報は見つからない。
追記・・・
その後調べたら
Fierfoxリリースノート 既知の問題に
・一部のアニメーション GIF ファイルが正しく表示されず、小さなアーチファクトが残ります。(bug 538752)
ってあった。
この事かな???
「小さなアーチファクト」って何んだろう?
4/2 追記・・・
Ver3.6.2がリリースされたのでアップデートしたけど解消されなかった。
アンインストール後、再度インストールしたら無事解消された。
アドインか何かが悪かったんだろうか?原因は不明のまま・・・・・・

Ver 3.6にアップデートした頃から新たにタブを追加表示すると上部のツールバー部分の表示が崩れる。
該当のOSはWindowsXPです。Windows7では大丈夫みたい。
ググってみたけどそんな情報は見つからない。

追記・・・
その後調べたら
Fierfoxリリースノート 既知の問題に
・一部のアニメーション GIF ファイルが正しく表示されず、小さなアーチファクトが残ります。(bug 538752)
ってあった。
この事かな???
「小さなアーチファクト」って何んだろう?
4/2 追記・・・
Ver3.6.2がリリースされたのでアップデートしたけど解消されなかった。

アンインストール後、再度インストールしたら無事解消された。
アドインか何かが悪かったんだろうか?原因は不明のまま・・・・・・
