Кажется, я немного борюсь с каким-то кодом. Он имеет выбранную форму, которая проверяется на отправке. Если есть ошибка, он сообщает, что есть ошибка, а также снова показывает форму, чтобы пользователь мог ее исправить. Однако, если ошибок нет, и все будет успешным, оно покажет форму ниже. Я не хочу, чтобы он отображал форму, когда нет ошибок, как это возможно с тем, как я ее настроил?
<?php
if (isset($_POST['submit']))
{
if ($row2[matches] == 3)
{
if ($_POST["matches"] == 1 & $_POST["matches2"] == 1) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] < 2) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] == 4) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You cannot have 4 matches!</span>";
}
if ($row2[matches] == 1)
{
if ($_POST["matches"] + $_POST["matches2"] < 1) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] == 2) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
}
if ($error["matches"] == '')
{
echo "test";
}
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?&id=<?php
echo "$id"; ?>">
<select name="matches">
<?php
if ($row2[matches] == 1)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
}
elseif ($row2[matches] == 3)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
<select name="matches2">
<?php
if ($row2[matches] == 1)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
}
elseif ($row2[matches] == 3)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
</fieldset>
<input type="submit" class="md-trigger blue-texture postbit-button-big md-pointer" name="submit" id="submit" value="Submit" />
</form>
<?php
$validated = false;
if (isset($_POST['submit']))
{
if ($row2[matches] == 3)
{
if ($_POST["matches"] == 1 & $_POST["matches2"] == 1) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] < 2) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] == 4) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You cannot have 4 matches!</span>";
}
if ($row2[matches] == 1)
{
if ($_POST["matches"] + $_POST["matches2"] < 1) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
if ($_POST["matches"] + $_POST["matches2"] == 2) $error["matches"] = "<span class='error'><span class='errorbox'><img src='images/other/error2.png' style='vertical-align:middle' /></span>ERROR: You are attempting to report an invalid score!</span>";
}
if ($error["matches"] == '')
{
$validated = true;
}
}
?>
if (! $validated) {
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?&id=<?php
echo "$id"; ?>">
<select name="matches">
<?php
if ($row2[matches] == 1)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
}
elseif ($row2[matches] == 3)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
<select name="matches2">
<?php
if ($row2[matches] == 1)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
}
elseif ($row2[matches] == 3)
{
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
</fieldset>
<input type="submit" class="md-trigger blue-texture postbit-button-big md-pointer" name="submit" id="submit" value="Submit" />
</form>
}
Вы сохраняете свои ошибки в пределах $error["matches"]
из того, что я вижу, поэтому достаточно простого if()
.
if (empty($error['matches']) == FALSE) {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>?&id=<?php echo "$id"; ?>">
<select name="matches">
<?php
if ($row2[matches] == 1) {
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
} elseif ($row2[matches] == 3) {
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
<select name="matches2">
<?php
if ($row2[matches] == 1) {
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
} elseif ($row2[matches] == 3) {
echo "<option value='0'>0</option>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
}
?>
</select>
</fieldset>
<input type="submit" class="md-trigger blue-texture postbit-button-big md-pointer" name="submit" id="submit" value="Submit" />
</form>
<?php
}
?>
И ради хорошей практики, пусть экземпляр $error
в строке 1.
$error = array("matches" => array());