2012-03-06 8 views
1

私のデータベースでは、ユーザーと呼ばれるテーブルがあります。そのテーブルには、usr_loc_idというフィールドがあります。そのフィールドの内容は、郵便番号の都市名です。例は次のようになります。パリ(75018)PHP - カスタムフィールドにエコーアウトされたdbフィールドが分​​割されています

私は、TRタグのカスタム属性にそのフィールドの値からエコーいくつかの点で午前のPHPスクリプトでは:

echo '<tr attrLoc='.$row['usr_loc_id'].' class='someClass'>... 

次のように私の問題があります。デバッガをチェックすると、都市名だけが考慮されることがわかります。親子の市のコードは除外されています。デバッガでどのように表示されるかを以下に示します。

<tr attrLoc="Paris" (75018) class="someClass">... 

ホープ誰かが理解し、これを解決することができます。あなたの返信を先にありがとう。乾杯。マーク

+0

二重引用符はどこから来ていますか? DBから来ていますか?あるいは、「パリ」は二重引用符で囲まれていて、郵便番号で囲まれていないと言っていますか? – Sarfraz

+0

最後のコード行は、私のChromeデバッガに表示されているもの – Marc

答えて

2

生成されたhtmlに引用符がありません。出力のリテラルテキストは次のとおりです。

<tr attrLoc=Paris (75018) class=someClass>... 

引用符がないことに注意してください。あなたのPHPに引用し、適切で

  1. attrLoc =パリ
  2. 無効な属性(75018)
  3. classs =工ass

:それはブラウザのパーサが、このタグで属性を見ていることを意味しますこれを修正することができます:

echo <<<EOL 
<tr attrLoc="{$row['usr_loc_id']}" class="someClass"> ... 
EOL; 

または

echo '<tr attrLoc="' . $row['usr_loc_id'] . '" class="someClass"> ...'; 
        ^--missing     ^--missing 
+0

こんにちはマーク。あなたはまったく正しい。すべてのものを二重引用符で忘れてしまった。それはトリックを作った。ルーキーな間違い!私はルーキーですので、それはOkでなければなりません...あなたは素晴らしい方法でファーストネームを持っています:) – Marc

+0

+1それは私が最初に疑ったものですが、彼はそれを正しく説明できなかったので確かではありませんでした。 – Sarfraz

0

引用符で囲んだコードを使用している場合は、引用符を追加することをお勧めします。市の名前は引用符に含まれる唯一のコンテンツなので、それがすべて表示されます。二重引用符と中かっこを使用して別の方法を紹介します:

echo "<tr attrLoc='{$row['user_loc_id']}' class='someClass'>"; 

これは解決しますか?

+0

一重引用符を使用しています... – Marc

+0

その都市のDBエントリに引用符が含まれていますか?あなたの出力では "Paris"(75018)が表示されますが、echoステートメントでは引用符は使用されません。それらの引用があなたのデータベースから来ているなら、addslashes( 'echo" '; ')でそれらを密かにしたいかもしれません –

+0

いいえ私の提出物に引用符は含まれていません。形式は次のようなものです:Paris(75018) – Marc

関連する問題