Как я могу отобразить мой ввод php на экране? - PullRequest
0 голосов
/ 07 марта 2019

Мне нужно выполнить задание, в котором я должен обработать следующие вещи: Создайте массив «color» и заполните его 10 именами цветов. Создайте скрипт, который отображает содержимое массива в таблице. Создайте сценарий, который проверяет введенный цвет на наличие в массиве цветов и возвращает его или нет. Моя проблема сейчас в том, что я не знаю, как вернуть правильный ответ на входе. Это мой код:

<?php
// different colors:
$color = array(
    '#99ed5c' => 'green',
    '#9c9991' => 'grey',
    '#17ffb6' => 'blue',
    '#a21647' => 'purple',
    '#fbd8c1' => 'light-pink',
    '#1f33a3' => 'dark-blue',
    '#7e0509' => 'red',
    '#f7d856' => 'yellow',
    '#3b0b1b' => 'violet',
    '#de4405' => 'orange'
);

function build_table($color){
    // start table
    $html = '<table>';

    // header row
    $html .= '<tr>';
    foreach($color as $key=>$value){
        $html .= '<th>' . htmlspecialchars($key) . '</th>';
    }
    $html .= '</tr>';

    // data rows
    foreach( $color as $key=>$value) {
        $html .= '<tr>';
        $html .= '<td>' . htmlspecialchars($key) . '</td>';
        $html .= '<td>' . htmlspecialchars($value) . '</td>';
        $html .= '</tr>';
    }

    // finish table and return it

    $html .= '</table>';
    return $html;
}

echo build_table($color);



echo "fill in a color: <input type='text' name='kleur'>";
echo "<input type='submit'> <br>";



if (in_array("green", $color))
{
    echo "Match found";
}
else
{
    echo "Match not found";
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Чтобы установить значение входа, просто установите параметр value следующим образом:

<input type='text' name='kleur' value='<?= $value ?>'>

или в вашем случае

echo "fill in a color: <input type='text' name='kleur' value='" . $color . "'>";
0 голосов
/ 07 марта 2019

Вы правильно поняли.

Чтобы обработать пользовательский ввод, вам нужно будет использовать обработку формы. * отправляющий от клиента на сервер, Подробнее см. здесь .

Так что вам нужно сделать что-то вроде:

<?php
// different colors:
$color = array(
    '#99ed5c' => 'green',
    '#9c9991' => 'grey',
    '#17ffb6' => 'blue',
    '#a21647' => 'purple',
    '#fbd8c1' => 'light-pink',
    '#1f33a3' => 'dark-blue',
    '#7e0509' => 'red',
    '#f7d856' => 'yellow',
    '#3b0b1b' => 'violet',
    '#de4405' => 'orange'
);

function build_table($color)
{
    // start table
    $html = '<table>';

    // header row
    $html .= '<tr>';
    foreach ($color as $key => $value) {
        $html .= '<th>' . htmlspecialchars($key) . '</th>';
    }
    $html .= '</tr>';

    // data rows
    foreach ($color as $key => $value) {
        $html .= '<tr>';
        $html .= '<td>' . htmlspecialchars($key) . '</td>';
        $html .= '<td>' . htmlspecialchars($value) . '</td>';
        $html .= '</tr>';
    }

    // finish table and return it

    $html .= '</table>';
    return $html;
}

echo build_table($color);
?>


    fill in a color:
    <form method="post" action="">
    <input type='text' name='kleur'>
    <input type='submit' name='submit'> <br>
    </form>

<?php
if (isset($_POST['submit'])) {
    if (empty($_POST['kleur'])) {
        echo "You left the color input blank.";
    } else {
        $inputColor = $_POST['kleur'];
        if (in_array($inputColor, $color)) {
            echo "Match found";
        } else {
            echo "Match not found";
        }
    }
}
?>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...