我的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>'
} ?>
答案 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。请验证。