如何将PHP代码返回到html体内

时间:2013-09-20 17:18:58

标签: php html ajax forms

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

3 个答案:

答案 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)

你也可以在没有的情况下实现这一目标。只需在主页中使用隐藏的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;