将联系人表单中的DIV替换为PHP中的另一个DIV

时间:2014-07-02 01:01:26

标签: php forms contact

我在Stackoverflow中尝试了不同的解决方案,但我找不到可以使用我的代码的解决方案。

我正在处理一个联系表单,其中包含文本字段和标签的DIV应该被包含感谢信息的另一个替换。

到目前为止,我已经收到了感谢信息,但带有联系人数据的DIV并没有消失。我使用相同的名称作为具有字段和感谢信息的DIV的名称。

所有内容都在名为“pregunta.php”的文件中

如果可能的话,我希望DIV消失而不是完整的形式。

我对PHP或Javascript代码了解不多。

以下是PHP中的部分:

<?php
    if(isset($_POST['send_message'])){
    $errors = array(); // declaramos un array para almacenar los errores
        if($_POST['sender_name'] == ''){
            $errors[1] = '<span class="error">*Ingrese su nombre</span>';
            $mail_sent = false;
        }else if($_POST['sender_email'] == ''){
            $errors[2] = '<span class="error">*Ingrese un email correcto</span>';
            $mail_sent = false;
        }else if($_POST['sender_phone'] == ''){
            $errors[3] = '<span class="error">*Ingrese un teléfono</span>';
            $mail_sent = false;
        }else if($_POST['sender_empresa'] == ''){
            $errors[4] = '<span class="error">*Nombre de la empresa para la que trabaja</span>';
            $mail_sent = false;
        }else if($_POST['sender_message'] == ''){
            $errors[5] = '<span class="error">*Escriba un mensaje</span>';
            $mail_sent = false;
        }
        else{//si todo esta ok envia email

            $name = $_POST['sender_name'];
            $mail_from = $_POST['sender_email'];
            $phone = $_POST['sender_phone'];
            $empresa = $_POST['sender_empresa'];
            $message = $_POST['sender_message'];

            // Encabezados del mensaje
            $headers = 'From: ' . $mail_from . "\r\n";

            // Construct email body
            $body_message = '///////////DATOS PERSONALES'."\r\n";
            $body_message .= "\r\n";
            $body_message .= 'De: ' . $name . "\r\n";
            $body_message .= 'Correo: ' . $mail_from . "\r\n";
            $body_message .= 'Teléfono: ' . $phone . "\r\n";
            $body_message .= 'Empresa: ' . $empresa . "\r\n";
            $body_message .= 'Mensaje: ' . $message . "\r\n";
            $body_message .= "\r\n";


        if(mail("giselle@intex-mkt.com",'Mensaje de página',$body_message,$headers))
        {           
          $result = // This is the DIV with the Thank You Message
         '<div id="datos">
           <center><img src="img/avion.png" alt="Mensaje enviado" style="text-align:center;"/></center>
            <p style="text-align:center; font-size:12px; color:#FFF;">¡Gracias!<br/> Nos comunicaremos contigo en cuanto tengamos los resultados de tu búsqueda</p>

            <div class="botones">
                <a href="cotiza.php"><input type="submit" class="boton1" name="regresa_cotiza" value="&laquo;Regresar"></a> <a href="index.php"><input type="submit" class="boton2" name="ir_inicio" value="Ir a inicio &raquo;" ></a>
            </div><!-- Fin botones -->
          </div><!-- Fin datos-->';

          $_POST['sender_name'] = '';
          $_POST['sender_email'] = '';
          $_POST['sender_phone'] = '';
          $_POST['sender_empresa'] = '';
          $_POST['sender_message'] = '';
        } 
        else 
        { $result = '<div class="result_fail">Hubo un error al enviar el mensaje</div>'; }
        }
    }
        ?> 

以下是联系表格:

<form class="contacto" action="pregunta.php" method="POST">
<?php echo $result ?>
                <div id="datos">
                <table width="auto" align="center" >
                <tr>
                <td>
                <form class="contacto" action="pregunta.php" method="POST">
                    <p style="padding-left:0px; font-size:11px;"><i>*Campos obligatorios</i></p>
                     <br/>
                    <div class="campo" style="margin-left:-10px;"><label for="field_name"><p>Nombre* </label><input type="text" id="field_name" class="textfield" name="sender_name" value='<?php echo $_POST['sender_name']; ?>'></p></div><!-- Fin class campo --><?php echo $errors[1]; ?>
                    <br/>    
                    <div class="campo" style="margin-left:-10px;"><label for="field_email"><p>Correo* </label>
                    <input type="text" id="field_email" class="textfield" name="sender_email" value='<?php echo $_POST['sender_email']; ?>'></p></div><!-- Fin class campo --><?php echo $errors[2]; ?>
                    <br/>
                    <div class="campo" style="margin-left:-10px;"><label for="field_phone"><p>Teléfono* </label>
                    <input type="text" id="field_phone" class="textfield" name="sender_phone" value='<?php echo $_POST['sender_phone']; ?>' style="margin-top:-12px;"></p></div><!-- Fin class campo --><?php echo $errors[3]; ?>
                    <br/>    
                    <div class="campo" style="margin-left:-10px;"><label for="field_phone"><p>Empresa* </label>
                    <input type="text" id="field_empresa" class="textfield" name="sender_empresa" value='<?php echo $_POST['sender_empresa']; ?>' style="margin-top:-12px;"></p></div><!-- Fin class campo --><?php echo $errors[4]; ?>
                </td>
                <td>
                    <div class="campo"><label for="field_message"><p style="margin-left:10px;">Mensaje* </label><br /><br />
                    <textarea id="field_message" rows="6" class="field_mensaje" name="sender_message"><?php echo $_POST['sender_message']; ?></textarea></p></div><!-- Fin class campo --><?php echo $errors[5]; ?>   
                </td>
                <tr/>
                </table>
                    <input type="submit" class="boton" name="send_message" value="Enviar">
                </form>

            </div><!-- Fin datos -->

2 个答案:

答案 0 :(得分:0)

它真的没有任何意义你需要做什么....但你可以做的是通过AJAX结合Javascript / jQuery提交表单,当它成功发送时,用你的感谢消息替换HTML 。但同样,使用纯PHP无法做到这一点,因为它是服务器端语言。

您还可以尝试在提交表单后设置唯一Cookie,并在刷新页面时检查Cookie。如果它存在,请显示您的感谢信息,而不是您的文本字段...但这是非常草率和不专业的技术。

更新 Check out this article。它使用AJAX,PHP&amp; amp; jQuery的。

答案 1 :(得分:0)

您完全过于复杂并且使用了应该通过AJAX / Javascript编码的过多且不必要的代码。

我的[强烈]建议是花一两个小时,去YouTube,搜索&#34; ajax教程&#34;,然后从第1课开始)...刷新你的JS技能,并使用它编写代码行业最佳实践,意思是JS / AJAX),而不是PHP。

我还建议通过jQuery学习AJAX作为执行任何AJAX调用的方法 - 它更简单。

信任我......