отображать код php в атрибуте html класса - PullRequest
0 голосов
/ 15 мая 2018

Я не могу конкатенировать php в HTML, пожалуйста, проверьте код, в котором я хочу конкатинировать.

1  $data['seats'] .= "<div class=\"col-xs-2\">
2      <div class=\"seat-body\">
3      </div>
4  </div> ";

Я хочу добавить условие if в строке выше 2 в атрибуте класса.

Ответы [ 5 ]

0 голосов
/ 15 мая 2018

Мне очень нравится sprintf с троичным для таких вещей:

<?php
$html =
sprintf(
'<div class="foo %s">
    <div class="bar">
    </div>
</div>',
$condition ? 'baz' : 'bat'
);
0 голосов
/ 15 мая 2018

Вот что-то более читабельное:

 $class = 'black';
 if($condition == 'something'){
  $class = 'white';
 }

 $data['seats'] .= '<div class="col-xs-2">
                     <div class="'.$class.'">
                     </div>
                    </div>';

или с переключателем:

 switch($condition){
  case 'something':     $class = 'white'; break;
  case 'somethingelse': $class = 'red';   break;
  default:              $class = 'black';
 }

 $data['seats'] .= '<div class="col-xs-2">
                     <div class="'.$class.'">
                     </div>
                    </div>';
0 голосов
/ 15 мая 2018

 $data['seats'] .= "<div class=\"col-xs-2\">
                <div class='".(in_array($seat, $bookArray)?("seat ladies"):("seat occupied ChooseSeat Harshad6"))."' data-item=\"\">
                <div class='".(if($id === 6) ? 'bla2' : '')."'> 
                    $seat
                    <span class=\"seat-handle-left\"></span> 
                    <span class=\"seat-handle-right\"></span>
                    <span class=\"seat-bottom\"></span>
                </div>
                </div>
            </div> ";
0 голосов
/ 15 мая 2018

Насколько я понимаю ваш вопрос, вы хотите добавить еще class к вашему <div> на основе выражения if:

<?php

$class = "";

if ( condition ) {
  $class = " yourNewClass";
}

$data['seats'] .= "<div class=\"col-xs-2\">
  <div class=\"seat-body{$class}\">
  </div>
</div> ";

$class сначала устанавливается пустым, а затем устанавливаетсяк вашему желаемому классу, если условие выполнено.

0 голосов
/ 15 мая 2018

Использование java-скрипта было бы идеальным для смены классов. Но если вы хотите PHP-решение, вы должны это сделать.

ОБНОВЛЕНО

Я удалил «если» в вашем троичном операторе. Я также предпочитаю одинарные кавычки при объединении HTML. Поэтому я переключил ваш код в одинарные кавычки.

На этой странице было несколько других действительных решений. Пожалуйста, найдите время, чтобы понять все другие решения. Это поможет вам в будущем.

$data['seats'] .=
'<div class="col-xs-2">
  <div class="' . (in_array($seat, $bookArray)?('seat ladies'):('seat occupied ChooseSeat Harshad6')) . '" data-item="">
    <div class="' . (($id === 6) ? 'bla2' : '') . '">' .
      $seat .
      '<span class="seat-handle-left"></span>
      <span class="seat-handle-right"></span>
      <span class="seat-bottom"></span>
    </div>
  </div>
</div>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...