0

我正在构建一个简单的表单脚本,用于收集用户电子邮件并返回 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>元素中的原始表单输入下方?

4

3 回答 3

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';
}

?>

于 2013-09-20T20:29:41.410 回答
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>
于 2013-09-20T17:38:17.497 回答
0

的情况下实现这一目标。iframe只需在您的主页中使用 hidden ,然后将您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>
于 2013-09-20T18:16:08.363 回答