私は比較的単純な質問をしますが、それはうまくいけば簡単な答えを伴うでしょう。私は現在、スクロールダウンタイプのウェブサイトを開発しています。すべてが1ページにあります、あなたは1つを知っています。私の「連絡先」セクションはページの一番下にあり、もちろんPHPを使用してフォームの検証を行っています。検証部分は機能しますが、問題はありません。ただし、検証に失敗した場合、ブラウザはページの先頭に戻ります。これは明らかな理由で不便です。
'header()'関数を認識しています。この関数を使用すると、エラーが発生した場合にページの下部に留まることができます。例として、DOCTYPEの前のHTMLページの上部に、次のように書くことができます。
if ($errors) {
header(Location: 'somelocation.php#contact');
}
これは機能しますが、何らかの理由で、HTMLに埋め込まれたPHPが機能しなくなります。エラーが発生した場合は、PHPを使用して次のページに表示します。
<h2>Contact</h2>
<?php if($errors) { ?>
<p class="warning">Please fix the errors</p>
<?php } ?>
「エラーを修正してください」は表示されません。ただし、ページからヘッダー関数を削除すると表示されるので、問題が関連していることがわかります。したがって、基本的に、header()関数を削除すると、ページが一番上に戻り、エラーが表示されます。header()関数を保持すると、ページは正しく表示されたままになりますが、エラーは表示されません。
または、フォームが正しく検証され、「ヘッダー」関数が呼び出され、ページの下部にとどまり、「ありがとうございます」というHTMLを表示したい場合に、この質問をすることもできます。フォームが送信されました'?(「ありがとう」のページなどには行きたくありません。同じ場所にとどまり、ページに「ありがとう」を付けてください)同じ問題が発生したと思います。これに対する解決策はありますか?
前もって感謝します!