如何在HTML中调用PHP函数

时间:2014-03-20 10:33:59

标签: javascript php html twitter-bootstrap

我的HTML页面功能齐全,基于Twitter Bootstrap。

为了添加联系表单(在这种情况下在一个模态窗口中),我在我的文件中实现了一些PHP代码。 将我的文件保存为index.php而不是index.html后,为了在服务器上解释PHP,只显示背景,所有内容都消失了。

我的代码的开头,包括主div开始之前有问题的PHP部分:

        <!DOCTYPE html>
        <html lang="fr">
        <html>
        <head>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
            <title>Manena.fr | Originaux, uniques et faits main, des cadeaux pour toutes les occasions</title>

            <!-- Bootstrap -->
            <link href="./css/bootstrap.min.css" rel="stylesheet">
            <link href="./css/custom.css"rel="stylesheet" >
            <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
            <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
            <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
            <![endif]-->

            <link href="http://fonts.googleapis.com/css?family=Abel|Open+Sans:400,600" rel="stylesheet" type="text/css">
            <link href="http://fonts.googleapis.com/css?family=Paprika" rel="stylesheet" type="text/css">
        </head>
        <body>

        <?php 

            include('success.php');

            if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){

            if(!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])){
                $destinataire = "contact@site.com";
                $sujet = "Demande de contact";
                $message .= "Nom : ".$_POST['nom']."\r\n";
                $message .= "Adresse email : ".$_POST['email']."\r\n";
                $message .= "Message : ".$_POST['message']."\r\n";
                $entete = 'From: '.$_POST['email']."\r\n".
                'Reply-To: '.$_POST['email']."\r\n".
                'X-Mailer: PHP/'.phpversion();

            if (mail($destinataire,$sujet,$message,$entete)){
                showSuccess();
                } else {

                echo "Une erreur est survenue lors de l'envoi du formulaire par email";

                }
            }
            }
        ?>

HTML CODE

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
    <!-- Modal Privacy-->
    <script type="text/javascript">
        $("#modalPrivacy").click(function(event){
        $("#modalPrivacy2").modal('show');
        });
    </script>
    <!-- Modal Contact-->
    <script type="text/javascript">
        $("#modalContact").click(function(event){
        $("#modalContact2").modal('show');
        });
    </script>

</body>
</html>

我的问题是:什么阻止我的页面形式显示,最终如何解决?

有关补充信息,以下是我的success.php文件的内容(用于关闭当前模式并显示带有成功消息的新模式):

<?php function showSuccess() {
    echo'<script>$("#modalContact2").modal('hide');</script>'
    echo '<script type="text/javascript">
        $("#modalSuccess").modal('show');
        });
    </script>'
} ?>

3 个答案:

答案 0 :(得分:0)

您的success.php文件是否包含错误的引号,如下所示:

  

echo&#39; <script type="text/javascript">

     

$(&#34;#modalContact2&#34)的模态(\&#39;隐藏\&#39;);

     

$(&#34;#modalSuccess&#34)的模态(\&#39;显示\&#39;);

     

</script>'

你在echo中使用单引号.modal(&#39; show&#39;)。这些单引号结束了echo语句。转义这些引号,例如.modal(\&#39; show \&#39;)。

希望这有帮助。

答案 1 :(得分:0)

我刚修改了你的代码。你确实有一些js错误

function showSuccess() 
            {
                echo "<script>$('#modalContact2').modal('hide');</script>";
                echo "<script type='text/javascript'>
                        $('#modalSuccess').modal('show');
                      </script>";
            }

你放了});在$(&#39; #modalSuccess&#39;)之后.modal(&#39; show&#39;);只关闭括号但不打开的线。我删除了它。我检查了它并提醒它正在工作。

答案 2 :(得分:0)

用这个

替换你的success.php代码

function showSuccess(){

echo '<script>$("#modalContact2").modal(\'hide\');</script>';

echo '<script type="text/javascript">
    $("#modalSuccess").modal(\'show\');
    });
</script>';

}

希望你的主文件ext是php而不是html。请验证。