我在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="«Regresar"></a> <a href="index.php"><input type="submit" class="boton2" name="ir_inicio" value="Ir a inicio »" ></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 -->
答案 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调用的方法 - 它更简单。
信任我......