2011-05-19 7 views
1

私は変数をエコーするのに問題があることをこのコード(下記参照)を持っています。 5行目にエコーがあります。エコーはhtml(引用符をエスケープしたもの)と変数の読み込みです。私はメインエコー内でエコーアウトする変数を得ることができません。構文helpとecho htmlとvariables

更新: また、オンクリックが考慮される必要があります。

<?php 
    if(
     in_array("Branding", get_field('categories')) && $grid_title == "Branding" 
    ){ 
    echo " 
     <div class=\"grid-box\" onclick=\"location.href='<?php echo get_page_link($post->ID) ?>';\" style=\"cursor: pointer;\"> 
     <div class=\"phase-1\"> 
      <img class=\"grid-image\" src=\"<?php echo $fields->thumb_image; ?>\" alt=\"<?php echo $fields->company_name; ?>\" height=\"152\" width=\"210\" /> 
      <div class=\"grid-heading\"> 
       <h2><?php echo $fields->company_name; ?></h2> 
       <h3><?php echo implode(', ',get_field('categories'));?></h3> 
      </div> 
     </div> 
     <div class=\"phase-2\"> 
      <div class=\"grid-info\"> 
       <h4><?php echo $fields->project_name; ?></h4> 
       <p><?php echo $fields->description; ?></p> 
      </div> 
      <div class=\"grid-heading-hover\"> 
       <h2><?php echo $fields->company_name; ?></h2> 
       <h3><?php echo implode(', ',get_field('categories'));?></h3> 
      </div> 
     </div> 
    </div> 
    "; 
    } 
    ?> 

答えて

3

、あなただけの適切そうのようなあなたの文字列を連結する必要があります。

 $Content = " 
     <div class=\"grid-box\" onclick=\"location.href='" . get_page_link($post->ID). "';\" style=\"cursor: pointer;\"> 
     <div class=\"phase-1\"> 
      <img class=\"grid-image\" src=\"" . $fields->thumb_image . "\" alt=\"" . $fields->company_name. "\" height=\"152\" width=\"210\" /> 
      <div class=\"grid-heading\"> 
       <h2> " . $fields->company_name . "</h2> 
       <h3>" . implode(', ',get_field('categories')) . "</h3> 
      </div> 
     </div> 
     <div class=\"phase-2\"> 
      <div class=\"grid-info\"> 
       <h4>" . $fields->project_name . "</h4> 
       <p>" . $fields->description . "</p> 
      </div> 
      <div class=\"grid-heading-hover\"> 
       <h2>" . $fields->company_name . "</h2> 
       <h3>" . implode(', ',get_field('categories')). "</h3> 
      </div> 
     </div> 
    </div>"; 
    echo $Content; 
1

この

echo " ... <?php ... ?> ..."; 

のようなものは動作しません。

代わりにあなたが "でブレイクアウト"、PHPの、のようなことができます:

... 
?> 
<div class="grid-box" onclick="location.href='<?php echo get_page_link($post->ID) ?>';" style="cursor: pointer;"> 
<div class="phase-1"> ... <?php 

または使用S/printfの

printf(
    '<div class="grid-box" onclick="location.href='%s';" style="cursor: pointer;">', 
    get_page_link($post->ID) 
); 

や使用文字列連結:

echo "html ...", get_page_link($post->ID), "some more html..."; 

かいくつかの種類のテンプレートコードを使用します。あなたは、エコー内エコー使用することはできません

+0

+1(printfは素晴らしいです) – kapa

2

あなたがここで少し誤解があるようです。

PHPで

することができます出力HTMLのいずれかの単純なHTML外<?php...?>を書き、そしておそらくHTML を含む出力PHP stringecho/printのようなものを使用して

  • 内のいくつかのPHPコードを挿入

    • によって

      ただし、2つを混在させることはできません。

      だから、これは良くありません。

      echo "... src=\"<?php echo $fields->thumb_image; ?>\" ..."; 
      

      これは文字列で、文字列の中で、あなたが<?phpセクションを開くことができませんので。

      echo "... src=\"{$fields->thumb_image}\" ..."; 
      

      これは、文字列の中にPHP変数を挿入するクールな方法の1つです。

  • 0

    phpタグをifの後に閉じて、閉じたセミコロンの前に開きます。

    if(
         in_array("Branding", get_field('categories')) && $grid_title == "Branding" 
        ){ 
        ?> 
         <div class="grid-box" onclick="location.href='<?php echo get_page_link($post->ID) ?>';" style="cursor: pointer;"> 
         <div class="phase-1"> 
          <img class="grid-image" src="<?php echo $fields->thumb_image; ?>" alt="<?php echo $fields->company_name; ?>" height="152" width="210" /> 
          <div class="grid-heading"> 
           <h2><?php echo $fields->company_name; ?></h2> 
           <h3><?php echo implode(', ',get_field('categories'));?></h3> 
          </div> 
         </div> 
         <div class="phase-2"> 
          <div class="grid-info"> 
           <h4><?php echo $fields->project_name; ?></h4> 
           <p><?php echo $fields->description; ?></p> 
          </div> 
          <div class="grid-heading-hover"> 
           <h2><?php echo $fields->company_name; ?></h2> 
           <h3><?php echo implode(', ',get_field('categories'));?></h3> 
          </div> 
         </div> 
        </div> 
        <?php 
        } 
        ?>