我正在构建一个简单的表单脚本,用于收集用户的电子邮件并返回PIN。
输入位于以下标准HTML中:
<p>
<form class="form-inline" role="form" method="POST">
<div class="form-group">
<label class="sr-only" for="srEmail">Email address</label>
<input type="email" name="srEmail" class="form-control input-lg" id="srEmail" placeholder="Enter email">
</div>
<button type="submit" name="srSubmit" class="btn btn-default btn-lg">Generate PIN</button>
</form>
</p>
我有以下if
语句,用于检查数据库以查看电子邮件是否已存在,以及用户是否需要PIN提醒。
if($num_rows != 0) {//if email found in table
?>
Email already registered, would you like a PIN reminder?
<form method="POST" action="">
<input type="submit" name="srSend" value="Click here to get pin reminder" />
<input type="hidden" name="srEmail" value="<?php echo strtolower($email);?>" />
</form>
<?php
exit;
}
目前,这会将结果作为新页面返回给用户;如何将它放在正文页面的实际HTML中,因此它实际上会显示在新<p>
元素中的原始表单输入下方?
答案 0 :(得分:0)
这与jquery.post
是一块蛋糕在你的html头中包含jquery库,你需要一个简短的脚本来获取ajax的php内容
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(function(){
$('#yourForm').submit(function(e){
e.preventDefault();
var data=$('#yourForm').serialize();
$.post('yourphp.php',data,function(html){
$(body).append(html);
});
});
});
</script>
</head>
<body>
<p>
<form id="yourForm" class="form-inline" role="form" method="POST">
<div class="form-group">
<label class="sr-only" for="srEmail">Email address</label>
<input type="email" name="srEmail" class="form-control input-lg" id="srEmail" placeholder="Enter email">
</div>
<button type="submit" name="srSubmit" class="btn btn-default btn-lg">Generate PIN</button>
</form>
</p>
</body>
答案 1 :(得分:0)
你也可以在没有ajax的情况下实现这一目标。只需在主页中使用隐藏的iframe
,然后将form
的目标属性设置为iframe
,如下所示:
<form method="post" action="page.php" target="myIframe">
.....
</form>
<p id="theResultP"></p>
<iframe src="#" name="myIframe" style="visibility: hidden"></iframe>
现在的问题是,如何在iframe“page.php”中加载页面以与开启者页面交互以更新p
。这可以按照以下方式完成:
//page.php
<script>
result = parent.document.getElementById('theResultP');
result.innerHtml = "<b>The message you want</b>"
</script>
答案 2 :(得分:0)
我不知道我能得到你要求的东西,但这是我的解决方案:
<p>
<form class="form-inline" role="form" method="POST">
<div class="form-group">
<label class="sr-only" for="srEmail">Email address</label>
<input type="email" name="srEmail" class="form-control input-lg" id="srEmail" placeholder="Enter email">
</div>
<button type="submit" name="srSubmit" class="btn btn-default btn-lg">Generate PIN</button>
</form>
</p>
<?php
if (isset($message)){
<p><?php print $message ?></p>
?>
<?php
}
?>
并在文件顶部写下这样的内容:
<?php
if($_post['srSend']){
$message='write your message here';
}
&GT;