PHP表单提交问题

时间:2013-08-21 15:15:35

标签: php html forms form-submit

这就是我在这里要做的。

  1. 我有一个html表单来收集用户的数据
  2. 提交表单后在textarea上显示输出
  3. 处理textarea内容的两个按钮: - 一个用于将内容下载为文本文件 第二个用于使用php发送textarea内容作为电子邮件
  4. 这里,输出textarea包含div output-main,我不想在表单提交之前显示这个div。

    现在我的HTML代码:

    <div class="emcsaninfo-symcli-main">
        <form  id="main" name="main" action="#text" method="post" > 
    
    
    
        <div class="block-with-text-area">
                            <div class="input-quest-with-text-area">Device List</div>
                            <div class="input-resp-with-text-area"><span><textarea class="textarea" name="devs" ></textarea></span></div>
        </div>
    
    
        <div id="devseq" >
                <div class="block">
                            <div class="input-quest">Starting Device</div>
                            <div class="input-resp"><span><input  class="textbox" id="sdev" name="sdev" type="text" size="5" maxlength="5"  value="<?php if(isset($_POST['sdev'])) { echo htmlentities ($_POST['sdev']); }?>" /></span> </div>
                </div>
        </div>
    
        <div id="metamemcnt"  >
                <div class="block">
                            <div class="input-quest">Meta member count(Excluding Meta Head)</div>
                            <div class="input-resp"><span><input  class="textbox" id="mem_count" name="mem_count" type="text" size="5" maxlength="3"  value="<?php if(isset($_POST['mem_count'])) { echo htmlentities ($_POST['mem_count']); }?>" /></span></div>
                </div>
        </div>
    
    
        <div id="metacnt"  >                
                <div class="block">
                            <div class="input-quest">How many Meta Devices</div>
                            <div class="input-resp"><span><input  class="textbox" id="meta_count" name="meta_count" type="text" size="5" maxlength="3"  value="<?php if(isset($_POST['meta_count'])) { echo htmlentities ($_POST['meta_count']); }?>" /></span></div>
                </div>
        </div>
    
    
        <div class="submit-clear">
                            <input  id="generate" type="submit"  name="script" value="create my cli script" />
                            <input type="submit" id="clear" name="clear" value="clear" />
        </div>
    
        </form>
    
        </div>
    

    由于我不希望在表单提交之前显示输出区域,我首先检查用户是否在表单字段中输入数据,如果是,则创建输出div

    下面的PHP代码

    <?php   
    if((!empty($_POST['sdev']) && !empty($_POST['mem_count']) && !empty($_POST['meta_count']))  || !empty($_POST['devs']) ){
    
    ?>          
    
    <div id="output-main">
    
    
    <?php  
    echo '<form action=" " method="post">'; 
    echo '<textarea onclick="this.select()" name="output_textarea" id="output_textarea" cols="100" rows="25" readonly>';    
    
    //other PHP Codes here
    
    echo '</textarea>';     
    
    ?>  
    
    </div>
    
    
    <?php                   
    echo '<input type="submit" id="download"  value="submit" name="submit"></input>';   
    
    echo '<input class="textbox" type="text" id="email-box" name="email-box" value="Enter Your Email ID here">';
    
    echo '<input type="submit" id="download1"  value="submit2" name="submit2"></input>';
    
    
    
    if($_POST['submit2'] == 'submit2') {
    
    
    $to = $_POST['email-box'] ;
    $message = $_REQUEST['output_textarea'];
    $subject = 'form meta cli script';
    $headers  = "From: info@domain.com\r\n";
    $headers .= "Reply-To: me@domain.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
    mail($to, $subject, $message, $headers);
    
    echo 'message sent successfully';
    }
    
    }
    
    ?>
    

    我面临的问题:

    我可以将内容下载为txt文件,但是当我尝试通过电子邮件发送内容时,它无效,只需清除output div部分。

    但是如果我删除了第一个PHP条件,即

    <?php   
    if((!empty($_POST['sdev']) && !empty($_POST['mem_count']) && !empty($_POST['meta_count']))  || !empty($_POST['devs']) ){
    
    ?>  
    

    下载和电子邮件功能都能正常运行。但是那个时候,我无法在表单提交之前隐藏output div部分。

    我不明白这里出了什么问题。

    我添加了

     value="<?php if(isset($_POST['sdev'])) { echo htmlentities ($_POST['sdev']); }?>"
    

    在表单提交后保持用户在其字段上输入数据。当我点击电子邮件按钮时,它会清除这些字段(下载按钮工作正常,并且在点击下载按钮后也会将数据保存在字段中)

0 个答案:

没有答案