За последние 24 часа нас посетили 5317 программистов и 684 робота. Сейчас ищут 215 программистов ...

Как правильно в PHP вставлять HTML з PHP внутри.

Тема в разделе "PHP для новичков", создана пользователем Asteroth, 8 авг 2019.

  1. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Код (Text):
    1. <?php
    2.         $a = isset($_GET['red_id']) ? $product['Card_number_of_patients']: '';
    3.         $b = 1;
    4.         if ($a >= $b) {
    5.             while ($result = mysqli_fetch_array($sql)) {
    6.         echo '<tr>' .
    7.             "<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value="<?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>"></td>" .
    8.             '</tr>';
    9.       }
    10.        
    11.         } elseif ($a == $b) {
    12.             echo "Траляля";
    13.         } else {
    14.             echo "Трололо";
    15.         }
    16.     ?>
    Проблема вот здесь я перепробовал все что знаю, вставить HTML который в PHP не получается. Не могу понять как правильно в echo вставить HTML код з PHP внутри.
    Код (Text):
    1. "<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value="<?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>"></td>" .
    так как я понимаю в PHP вставить опять же PHP нельзя.
    Как правильно в таких случаях переключаться з PHP на HTML или это проблема в echo и там какие то особенные правила синтаксиса?
     
    #1 Asteroth, 8 авг 2019
    Последнее редактирование: 8 авг 2019
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.199
    Симпатии:
    190
    @Asteroth, никаких проблем не будет если выучить базовую теорию языка и его синтаксис.
    Просто открой любую книгу по РНР и дело в шляпе.
     
  3. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    А сказать в чом имено проблема сложно? Как буто я не читал инфу...

    так не работает
    Код (Text):
    1. "<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value=".= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ."></td>" .
    и так не работает

    Код (Text):
    1. '<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value=".= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ."></td>' .
    и так не работает

    Код (Text):
    1. '<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value=" '.= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; .' "></td>' .
    и еще куча вариантов но оказалось для старих версий, у меня версия PHP Version 7.1.22.

    чисто без echo работает, но его надо вставить в цыкл.
    Код (Text):
    1. <td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value="<?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>"></td>
    Люди пишут на форуме наверное не просто так.

    Ответ на форуме для новичков в стиле иди книжки почитай, не адекватный. Прошу модераторов принять во внимание.
     
    #3 Asteroth, 9 авг 2019
    Последнее редактирование: 9 авг 2019
  4. ElisDN

    ElisDN Новичок

    С нами с:
    13 фев 2018
    Сообщения:
    334
    Симпатии:
    74
    Наоборот, совет прочитать про синтаксис – самый адекватный.
     
  5. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Пробуйте альт. синтаксис и т.п использовать. См. код шаблонов тут.
     
  6. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Даже близко нету то что я спрашиваю.

    http://www.php.su/learnphp/?syntax
     
  7. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Все там есть. Конкретно про строки см. Ну и не забывай, что в echo можно список использовать: echo ..., ..., ...;
     
  8. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Нет нет, вывод у меня есть и все работает, там я разобрался, мне надо пример как сделать input в цыкле, но что бы в этот input еще и подгружалась информация с базы.

    в данной строчке
    Код (Text):
    1. <td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value="<?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>"></td>
    вот этот скрипт грузит з базы данные. там где value="
    Код (Text):
    1. <?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>
    Но echo на него ругается именно на синтаксыс.

    я и точки ставил
    Код (Text):
    1. .= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : '';.
    и лапки и душки и что тока не ставил.

    но все мимо. По этому не могу понять что не так.
     
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    1.152
    Симпатии:
    155
    PHP:
    1. <?php
    2.  
    3. $product = '';
    4.  
    5. if( isset( $_GET['red_id'] ) )
    6. {
    7.     $product = $product['Card_Head_Of_The_Brigade'];
    8. }
    9.  
    10. echo '<td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value="  ' . $product . ' "></td>';
    11. ?>
     
    Asteroth нравится это.
  10. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Нужно мозги включать. В первом примере у тебя и обрамляющие кавычки, и внутри строки одинаковые. Нужно либо разные использовать, либо делать экранирование. Либо см. расширенные синтаксисы определения строк (heredoc, nowdoc).

    Говорю, на оформление шаблонов обрати внимание.
     
  11. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Благодарю теперь я понял. Я в таком ключе сейчас и пытался сделать.
     
  12. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    1.152
    Симпатии:
    155
    @Asteroth только имя переменной поменяй не $product=''; а например $valueProduct
     
    Asteroth нравится это.
  13. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    @Artur_hopf, ты натыкал пробелов в значение value для пущей важности? :)
    --- Добавлено ---
    И в отличии от ТСа ты походу даже про тернарный оператор не слыхал. Когда видишь что-то непонятное, заглядывай в справочник ;)
     
  14. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.199
    Симпатии:
    190
    @Asteroth, тебе уже сказали про альтернативный синтаксис, но можно и без него.
    Попробуй всё что содержит html теги выводить не через echo, а напрямую.
    Чтение книг - это самый прямой и быстрый способ разобраться в проблеме.
    Но если тебе быстро и легко не надо, можешь слоняться по форумам и "собирать" обрывки нужной информации, а потом лепить "горбатого к стенке"
     
    miketomlin нравится это.
  15. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    P.S. «Тернарник» можно прямо в echo запихнуть. Чтобы не повышать его приоритет скобками, можно использовать перечисление вместо конкатенации.
    --- Добавлено ---
    Это как? Или ты про мое «и т.п.» (в частности <?=)?
     
  16. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.199
    Симпатии:
    190
    да, только лично я альтернативный синтаксис не люблю, мне скобки ближе, да и подсветка в редакторе со скобками работает корректнее
     
  17. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    @Valick, тут дело не в «люблю-не люблю». А в удобстве/технологичности. Мне тоже этакая громоздкость, может, не нравится. Но спроси любого верстальщика, что ему удобнее. А после терпи :)
     
  18. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    пробувал вот так.

    Код (Text):
    1. 'td align="left" valign="top"><p style="margin-left: 5px"><input type="text" size="30" name="Card_Head_Of_The_Brigade" value=".= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ."></td>' .
    Он стал частично робочий, но тогда ему ['red_id'] не нравиться. По этому и стал уже думать как все это вынести из строчки, но тут Artur_hopf помог.
     
  19. miketomlin

    miketomlin Активный пользователь

    С нами с:
    9 авг 2016
    Сообщения:
    1.726
    Симпатии:
    256
    Не, ему не нра, когда проггеры тупят ;)
    --- Добавлено ---
    --- Добавлено ---
    В общем успехов. Как научишься слушать, обращайся.
     
  20. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.199
    Симпатии:
    190
    PHP:
    1. <?php
    2. $a = isset($_GET['red_id']) ? $product['Card_number_of_patients']: '';
    3. $b = 1;
    4. if ($a >= $b) {
    5.     while ($result = mysqli_fetch_array($sql)) {?>
    6. <tr>
    7.     <td align="left" valign="top">
    8.         <p style="margin-left: 5px">
    9.             <input type="text" size="30"
    10.                    name="Card_Head_Of_The_Brigade"
    11.                    value="<?= isset($_GET['red_id']) ? $product['Card_Head_Of_The_Brigade'] : ''; ?>">
    12.         </p>
    13.     </td>
    14. </tr>
    15. <?php
    16.     }
    17. } elseif ($a == $b) {
    18. echo "Траляля";
    19. } else {
    20. echo "Трололо";
    21. }
    22. ?>
     
    Asteroth нравится это.
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    6.767
    Симпатии:
    1.277
    Надо избегать html внутри строковых констант. PHP специально был придуман, чтоб его вставляли в html, поэтому там куча приёмов, с которых любая нормальная книжка начинается по php. https://www.php.net/manual/ru/language.basic-syntax.phpmode.php - читаем. вникаем..
     
  22. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Спасибо. Пробувал <html> вставлять в php как в душки, а наоборот даже в голову не приходило.. Очень полезная информация. Есть же хорошие люди.
     
    #22 Asteroth, 9 авг 2019
    Последнее редактирование: 9 авг 2019
  23. Asteroth

    Asteroth Новичок

    С нами с:
    8 авг 2019
    Сообщения:
    14
    Симпатии:
    0
    Вот это я пропустил. Вот можна ведь направить на путь истины, дать сылку на инфу которую пропустил, а не посылать иди книжки почитай.. Мне кажеться, для этого ведь форум новичков предназначен... И за этой подсказкой я и приходил. Потому как перелопатил кучу информации, а такой простой способ в голову не приходил. Точней не знал как правильно сформулировать запрос. Писал как вставить html в php. Но то что можна не полный php вставлять в html, не знал.

    Спасибо буду знать.
     
    #23 Asteroth, 9 авг 2019
    Последнее редактирование: 9 авг 2019
  24. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.199
    Симпатии:
    190
    Именно об этом я и говорил, достаточно прочесть одну книгу, а не лопатить кучу информации.
    Так это повезло, что модератор не успел "принять меры" в отношении меня
     
  25. ElisDN

    ElisDN Новичок

    С нами с:
    13 фев 2018
    Сообщения:
    334
    Симпатии:
    74
    Ага, прямо-таки пропустили :) Это самый первый раздел в официальной документации https://www.php.net/manual/ru/langref.php