2011-12-28 12 views
0

誰も私の問題を解決することができます。そのdrupal 7ビューでは、私はなぜif条件が満たされていない(if($ mycount == 1))次のコードで知りません。ビューグローバルカウンタIF状態が機能していませんか?

foreach ($fields as $id => $field){ 
    if($field->class == "counter") 
    { 
     $mycount = $field->content; 
     echo $mycount; 
     echo "<br>"; 
    } 
    if($field->class == "field-logo") 
    { 
     var_dump($mycount); // output 
     echo "<br>"; 
     if($mycount == 1) // but here 1 == 1 for the first time. see the output. 
     { 
      echo "worked"; // its not coming here... 
     } 
    } 
} 

OUTPUT:

1 
string(36) "1" 
2 
string(36) "2" 
3 
string(36) "3" 
4 
string(36) "4" 
5 
string(36) "5" 

感謝。

答えて

0

は、私はこの問題は、文字列のサイズをダンプしていることを疑う - 文字列(36)から$mycountコンテンツは一つの文字が、36(番号「1」と35ガベージ文字)ではありません示唆しています。あなたはこれを試してみてください:

$mycount = trim($field->content); 

echo '<pre>as string: ' . var_export($mycount, true) 
    . ', is_numeric: ' . var_export(is_numeric($mycount), true) 
    . ', as integer: ' . var_export((int) $mycount, true) . '</pre><br />'; 

あなたは出力にこのように表示されます。

as string: '1', is_numeric: true, as integer: 1 
0

私はビューは、いくつかのHTMLにあなたのフィールド値を包んだので、あなたの本当の出力は<span class="field-content">1</span>かもしれませんが、ブラウザを信じますあなたは "1"しか見ることができません。

結果がHTMLで囲まれないようにするには、「結果カウンタの表示」フィールドスタイル設定を「フィールドHTMLのカスタマイズ」に変更し、ドロップダウン値として「 - なし」を設定する必要があります。

ここで$field->contentはHTMLなしで値を返し、if文の$mycount == 1は正常に動作します。

関連する問題