電子書籍の厳選無料作品が豊富!

いつもお世話になっております。

添付のPHPにエラーがあり、正しく動作してくれません。
どなたかご教授いただけませんでしょうか。


--環境--
ドキュメントの型宣言:HTML4.01 Frameset
セカンダリスキーマ:HTML4.01 Frameset


--不明な点(修正したい箇所)--
(1)黄色に表示されているエラー(下記の「($this-)>」が黄色になっています)

$xml = "<row id=>
foreach ($customRowAttributes as $name = $field) $xml.= " {$name}='" .
($encodeCustomAttributes ? base64_encode($this->_getRowField($row, $field)) : $this->_getRowField($row, $field)) . "'";
$xml.= "\n";

(2)<table><metadata><values><row><column>の波線
※「HTML4.01 Framesetでは、タグ<table>が親タグの中に含まれる必要があります。」
※「HTML4.01 Framesetでは、<metadata>(<values><row><column>)タグは利用できません。」
※添付が見えにくくてすいません。
上記(<metadata>など)はHTML4.01以外であれば使用できるのでしょうか?それとも他に書き方があるのでしょうか。


--XML側のコード--
<?xml version="1.0" encoding="utf-8"?>
<table>

<metadata>

<column name="name" label="NAME" datatype="string" editable="true"/>
<column name="firstname" label="FIRSTNAME" datatype="string" editable="true"/>
<column name="age" label="AGE" datatype="integer" editable="true"/>
<column name="height" label="HEIGHT" datatype="double(m, 2)" editable="true"/>

<column name="continent" label="CONTINENT" datatype="string" editable="true">
<values>
<value value="eu">Europe</value>
(・・・略・・・)
</values>
</column>
<column name="country" label="COUNTRY" datatype="string" editable="true">
<!-- These values will be ignored when using demo.js because in this file we declare a custom enumeration provider -->
<values>
<value value="be">Belgium</value>
(・・・略・・・)
</values>
</column>

<column name="email" label="EMAIL" datatype="email" editable="true"/>
<!--column name="website" label="WEBSITE" datatype="url" editable="true"/-->
<column name="freelance" label="FREELANCE" datatype="boolean" editable="true"/>
<column name="lastvisit" label="LAST VISIT" datatype="date" editable="true"/>
<column name="action" label="" datatype="html"/>

</metadata>

<data>
<row id="1">
(・・・略・・・)
</row>
(・・・省略・・・)※テーブルの内容になります。
</data>
</table>

以上

※添付画像が削除されました。

A 回答 (2件)

うぅ画像が見辛いですね。

Goo さん(OK Waveさん?)もう少し工夫して欲しい。

> 添付のPHPにエラーがあり、正しく動作してくれません。
とのことですので、動くけど期待した振舞をしないということでしょうか?

(1) ですが、コピペ失敗してませんか?記載の内容だとそもそも文法エラーになると思うので。

> (1)黄色に表示されているエラー(下記の「($this-)>」が黄色になっています)
「$this->」の部分ですよね?

>
> $xml = "<row id=>
> foreach ($customRowAttributes as $name = $field) $xml.= " {$name}='" .
> ($encodeCustomAttributes ? base64_encode($this->_getRowField($row, $field)) : $this->_getRowField($row, $field)) . "'";
> $xml.= "\n";

・$xml = の値クォート閉じてないです。
・foreachの括弧内 $name => $field かと

で、肝心の $this->_getRowField ですが、使っているエディタが '->_' の解釈に失敗しているための warning とか、このクラスが別のPHPファイルに記載されたクラスを継承していて _getRowField メソッドを参照できないとか、そういう(エディタ都合の)warning だったりしませんか?
#黄色ってなんだろう?注意?エラーは赤とかになるのかな?

(2) ですが <metadata> 要素内をなにか別の処理によって <table> タグの要素に変換して使うんじゃないでしょうか?

最終的には
|NAME|FIRSTNAME|AGE|HEIGHT|CONTINENT|COUNTRY|EMAIL|WEBSITE|FREELANCE|LAST VISIT||

こんな表ができるのかな?
印象的には、ちょっと大きめで画面に収まらなさそうなので、もっと見やすい形に整形されるのかもしれませんね。

<meta> はよく見ますけど、table 要素を表現する metadata タグって見たことがなかったので別の処理系に食わせるのかなって思いました。
#ほんのちょっとググってみたけど見当たらなかったので。

質問の雰囲気的に何か既存のアプリケーションに手をいれているとか、サードパーティ製のライブラリを使っているように感じられますが、別のソース内とか、リファレンスに使い方とか記述されていませんでしょうか?
    • good
    • 0
この回答へのお礼

ご返信が遅くなり申し訳ございません。

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

参考にさせていただきました。

お礼日時:2012/10/11 14:15

エラーメッセージはなんと出てますか?


PHPでEclipseは使ったこと無いのでどの様に出てくるのかわかりませんが・・・

この回答への補足

「不要な山かっこがあるため、このタグは無効としてマークされています。」です。

今は、MSのExpression Web4を使用しています。

よろしくお願いします。

補足日時:2010/12/22 09:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!