Как отобразить содержимое <div>, когда установлен флажок?

0

У меня проблема. Я новичок в PHP и пытаюсь закодировать функцию эха для формы информации о продукте.

ФОРМА, ИСПОЛЬЗУЕМАЯ ДЛЯ: Эта форма используется как средство для сбора входных текстовых и флажковых данных и эхо файла на другую.php-страницу, чтобы она могла отображать/отображать те же собранные данные формы в form action="grid-maker.php" страницы с предопределенным содержимым html, по существу создающим конечный результат, который представляет собой блок сетки информации о компонентах типа pinterest, который отображает в нем img, название продукта, описание, цену и т.д.,...

ПРОБЛЕМА

Я использую простой <?php echo $_GET['']?> Чтобы получить такие вещи, как имя, цена, описание... это было легко, трудная часть для меня пытается использовать эту функцию эха для доставки содержимого html который изменяется в цвете и заполняется с помощью input="" label="" div class="" с использованием отмеченных флажков, пример кода показан ниже.

    <div class="checkbox-purple">
    <input type="checkbox" name="Color:_Purple"  id="sku0001-purple" value="Yes">
    <label for="sku0001-purple"></label>
    </div>

<div class="checkbox-orange">
    <input type="checkbox" name="Color:_Orange"  id="sku0001-orange" value="Yes">
    <label for="sku0001-orange"></label>
    </div>
</code>

Этот тип html - это то, что я хочу отправить на новую.php-страницу каждый раз, когда установлен флажок, но все мои попытки потерпели неудачу.

Я попробовал это первым:

 <?php if(isset($GET['Color:_Purple']) && $GET['Color:_Purple'] == 'Yes') { echo "<div class='checkbox-purple'><input type='checkbox' name='Color:_Purple' id='sku0001-purple' value='Yes' class='SKU0001_adjust'><label for='sku0001-purple'></label></div>"; }?>

это не сработало для меня, я разместил этот код так же, как между div, который я хотел бы отобразить на странице product-maker.php, но он не появился.

После того, как много новичков возилось, как я пришел к этому

<?php echo "<div class='checkbox-purple'><input type='checkbox'   name='Color:_Purple'  id='<echo $_GET['sku']-purple' value='Yes' class='<echo $_GET['sku']_adjust'><label for='echo $_GET['sku']-purple'></label></div>"; ?>

это действительно работало при инъекции кода на страницу, но оно не было прикреплено к флажку, и я не уверен в этих одиночных цитатах внутри div и прочее, не уверен, как это повлияет на функции эха, размещенные внутри.

Я пробовал много других методов, которые я потерял. Все рекомендации будут полезны, и полу-подробные инструкции будут оценены, поскольку я новичок в PHP.

Всем спасибо.

  • 1
    Убедитесь, что вы дезинфицируете все, что отображаете, т.е. с помощью htmlspecialchars() . Любой пользовательский ввод, который получает выходные данные без какой-либо дезинфекции / экранирования, является уязвимостью XSS.
  • 0
    Вам нужен JavaScript, чтобы сделать это. Что - то вроде этого или этого .
Показать ещё 3 комментария
Теги:
checkbox
echo
get

1 ответ

0
Лучший ответ

Вы не можете получить доступ к элементу массива в такой строке. PHP хорош, но не понимает ваш код.

Попробуйте это вместо этого. Обратите внимание, что $ _GET ['sku'] теперь завернут в фигурные скобки {$ _GET ['sku']}

echo "<div class=\"checkbox-purple\"><input type=\"checkbox\" name=\"Color:_Purple\" id=\"{$_GET['sku']}-purple\" value=\"Yes\" class=\"{$_GET['sku']}_adjust\"><label for=\"{$_GET['sku']}-purple\"></label></div>";
  • 0
    спасибо, что помогли мне с одинарными цитатами, высоко ценится.
  • 0
    не волнуйтесь. обратная косая черта - это удобный символ для экранирования символов, например, echo " \"quoted text will still print quotation marks\" ";
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню