1

私はアマチュア コーダーで、今年は HTML5 と CSS3 の学習に取り掛かりました。

現在、課題に直面しています。単一ページの html ファイル (index.html) があります。ページには、php ファイルへのアクションを持つ html フォームがあります。php ファイルがフォームを処理すると、ユーザーは index.html に戻ります。私がやりたいことは、サイトの上部に「フォームに記入してくれてありがとう!」という div を表示することです。

どうすればいいですか?「参照ページがform.phpの場合、divを表示する」というようなものを作成すると思いますが、参照ページを検出する方法がわかりません。さらに、使用する言語がわからないため、javascript を想定しています。単一ページのhtmlファイルをphpファイルに変えたくないので、phpから離れたいと思います。

これが明確であることを願っていますありがとうございます!

4

1 に答える 1

1

あなたのページの正確な構造がわからないので、sessions と htaccess を使用して、html ファイルで php を使用できるようにすることをお勧めします。

処理直後のphpファイルに、次のように記述します。

@session_start();
$_SESSION['submitted_msg'] = "You have submitted a form";

HTML ファイルで、メッセージを表示したい場所に次のように記述します。

<?php if (isset($_SESSION['submitted_msg'])) { ?>
<div><?php print($_SESSION['submitted_msg']);?></div>
<?php unset($_SESSION['submitted_msg']);} ?>

.htaccessこれが機能するには、プロジェクトのルート ディレクトリにファイルが必要です。内部に次のコードを使用します。

AddType application/x-httpd-php .html

これが役に立てば幸いです。他の方法が必要な場合は、詳細を書いてください。

更新 1: Cookie を有効にした JavaScript メソッド

フォーム.php

<?php
  # above is form processing...
  setcookie ("submit_message", 'thanks...', time()+3600, '/');
  header("Location: index.html");
  exit;
?>

index.html

   <html>
<head></head>
<body>
    <script type="text/javascript">

    function readCookie(name)
    {
        var cookiename = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++)
        {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(cookiename) == 0) return c.substring(cookiename.length,c.length);
        }
        return null;
    }

function deleteCookie( name, path, domain ) 
{

   document.cookie=name+"="+((path) ? ";path="+path:"")+((domain)?";domain="+domain:"") +
                                   ";expires=Thu, 01 Jan 1970 00:00:01 GMT";
}

    window.onload = function()
    {
        var msg = '';
        if (readCookie('submit_message') != null)
        {
            msg = readCookie('submit_message');

            deleteCookie('submit_message','/');
        }
        document.getElementById('message').innerHTML = '<div style="background:green">'+msg+'</div>';
    }
</script>

<div id="message">

</div>
</body>
</html>

フォーム php に移動すると、index.html にリダイレクトされ、メッセージが表示されます。更新すると、メッセージが消えます。

幸運を。

于 2013-01-07T00:13:36.637 に答える