Это не работает так, как хотелось бы, чтобы он работал. Он печатает сообщение в нижней части моего элемента тела, ниже формы. Сообщение должно быть напечатано внутри элемента формы, под кнопкой отправки.
PHP-код
if (mail ($to, $subject, $body, $headers)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
HTML
<form>
<div class="control-group">
<label class="control-label" for="submit"></label>
<div class="controls">
<button>Submit</button>
</div>
</div>
</form>
Я попытался дать класс эхо-абзацу, но все, что он делает, это добавить еще один абзац ниже формы. Это происходит на одной и той же странице php.
Может быть, проще объяснить, что echo
- это просто output
контента. Нет разницы, например, между:
<?php echo '<p>Hello World</p>'; ?>
а также
<p>Hello World</p>
Теперь, когда вы принимаете это во внимание, вы увидите, что каждый отдельный вывод печатается в браузере в том порядке, в котором они были выполнены.
Таким образом, просто так, эхо сообщения должно происходить в том месте, где оно предназначено для записи, то есть внутри формы, противоположной ниже.
<form>
<div class="control-group">
<label class="control-label" for="submit"></label>
<div class="controls">
<button>Submit</button>
<?php
// if you want it here
if (mail ($to, $subject, $body, $headers)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
?>
</div>
</div>
</form>
$Message='<p>Your message has been sent!</p>';
и после кнопки отправки<?php echo $Message;?>