ActionScript3.0とPHPと連携したXMLデータの読み込みについて質問があります。ActionScriptからPOSTした文字列を参照してDBのデータをXMLファイルとして保存することは出来ましたが、ActionScript側の受け取りで「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」というエラーがはかれてしまい… XMLデータに変換できなくて困っています。解決の方法をご存知の方がいらっしゃいましたら、ご教授いただけると助かります。よろしくお願いします。

失敗スクリプト ⇒ http://www.kinsekitei.com/prototype/sample.html

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/10/24 19:34:00
  • 終了:2011/10/26 07:04:41

ベストアンサー

id:romer No.1

romer回答回数3ベストアンサー獲得回数12011/10/25 10:58:59

ポイント200pt

スクリプト読みました。現状だとphpからXMLとしてのレスポンスとしては出力されていません。

file_put_contents("color.xml",$dom->saveXML());
urlencode($dom);
echo ($dom);

この部分ですが、これはファイルに保存した後に

DOMDocumentオブジェクトをurlencodeし出力しようとしています。


これは私の環境ではfatal errorが出ましたので、エラーが出てないか確認してみてください。

この部分を書き換えるとすれば

$dom->save('color.xml');

header("Content-Type: text/xml; charset=utf-8");
echo $dom->saveXML();

でOKです。


あとは余談ですが

while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
foreach($array as $val){
$data_list[$ii][$val] = $row[$val];
}

$ii++;
};

ここの部分は

while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
 $data_list[] = $row;
}

このように簡略化する事が可能です。

理由はfetchmodeがassocなので、DBのキーがそのまま使える為です。


また最終行で

mysql_close($conn);

とされていますがこれは不要ではないですか?

仮に接続を切りたい場合は

fetchrowをしたループの後に

$db->disconnect()

とすれば良いと思います。


それと、以前の質問への回答に

もっと容易にXMLを出力する方法を記載してあります

他13件のコメントを見る
id:DrArabes

同様に#1009が出ている状況です。

2011/10/26 16:17:05
id:DrArabes

無事にクラス内部でのXMLの取得に成功しました。ありがとうございます。ちなみに.fla側では前回からのエラー#1009 Nullが出現し、targetができなくて困っています。公にXMLデータを参照でき格納された変数にすることはできないのでしょうか…

2011/10/27 13:04:46

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません