Синтаксическая справка по эхо HTML и переменным - PullRequest
1 голос
/ 19 мая 2011

У меня есть этот код (см. Ниже), у меня проблемы с выводом переменных.На 5-й строке - эхо, внутри этого эха - загрузка html (которую я избежал кавычек) и загрузка переменных.Я не могу заставить переменные выводить эхо в основном эхо.

Обновление: также внутри есть щелчок, который необходимо учитывать.

<?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>
     ";
   }
   ?>

Ответы [ 4 ]

3 голосов
/ 19 мая 2011

Вы не можете использовать эхо в эхо, вам просто нужно правильно соединить ваши строки, например:

     $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;
2 голосов
/ 19 мая 2011

Похоже, у вас есть небольшое недопонимание.

В PHP вы можете выводить HTML либо

  • , записывая простой HTML вне <?php...?> и, возможно, вставляя в него некоторый код PHP
  • используя что-то вроде echo / print для вывода строки PHP , которая включает в себя HTML

Но вы не можете смешивать эти два.

Так что это нехорошо:

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

Потому что это строка, и в строке вы не можете открыть секцию <?php.Вместо этого вы должны сделать что-то вроде этого:

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

, который является одним из классных способов вставить переменные PHP в строку.

1 голос
/ 19 мая 2011

как то так

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 голосов
/ 19 мая 2011

Просто закройте тег 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
   }
   ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...