Bueno, no termino de darme cuenta como hacer para que simplemente la palabra array no llegue y en su lugar llegue el contenido, es una pena que no pueda empezar ya a ganar dinero solo por eso.
Por otra parte estuve modificando el código , le agregue mensajes de error a cada casilla , los mismos con fadeIn y fadeOut cuando la casilla es correctamente modificada por el usuario. además permití que el campo teléfono no sea obligatorio y en este momento estoy tratando de que no solo aparezca el cartel de error si no que al aparecer también haga focus en el campo donde se encuentra el error, pero no tengo en claro como hacerlo , entiendo que con .fadeOut(); logro mostrar el cartel de error y entiendo que con .focus(); logro hacer focus, pero no tengo idea de como colocar ambos al mismo tiempo y tampoco se que pasaría si en vez de haber un solo campo con error hubiesen 2 por ejemplo , no se en donde se posicionaría el focus, en cual de los dos? supongo que en el primer error que encuentre pero no se si eso lo haría automático o es cuestión de indicárselo de alguna manera, si alguien que esta leyendo lo sabe, se lo agradezco me explique un poco.
Definitivamente el código js. me fue quedando asi:
jQuery(document).ready(function($) {
$('#formulario2').submit(function(e) {
e.preventDefault();
if( validarDatos() ) {
var data = $(this).serialize(); // Así te aseguras de que todos los datos sean enviados
$.ajax({
url: 'envio.php',
type: 'post',
data: data,
success: function(data) { // No haces nada con data
$('.perfect2').hide();
$("#mensaje8").fadeOut();
$('#perfecto').delay(500).fadeIn('slow');
$('form[name=formulariotipopresupuesto]').get(0).reset();
$('#perfecto').delay(5000).fadeOut('slow');
},
error: function() {
$('#fracaso').delay(500).fadeIn('slow');
}
});
}
});
function validarDatos() {
var nombre = $(".nombre").val();
email = $(".email").val();
validacion_email = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
telefono = $(".telefono");
localidad= $(".localidad").val();
consulta = $(".consulta").val();
encuesta= $(".encuesta").val();
if (nombre == "") {
$("#mensaje1").fadeIn();
return false;
}else
$("#mensaje1").fadeOut();
if(email == "" || !validacion_email.test(email)) {
$("#mensaje2").fadeIn();
return false;
}else
$("#mensaje2").fadeOut();
if(localidad == "") {
$("#mensaje3").fadeIn();
return false;
}else
$("#mensaje3").fadeOut();
if($('input[type=checkbox]:checked').length <= 0) {
$("#mensaje4").fadeIn();
return false;
}else
$("#mensaje4").fadeOut();
if($('input[type=radio]:checked').length <= 0) {
$("#mensaje5").fadeIn();
return false;
}else
$("#mensaje5").fadeOut();
if(consulta == ""){
$("#mensaje6").fadeIn();
return false;
}else
$("#mensaje6").fadeOut();
if(encuesta == "-Elija una respuesta..."){
$("#mensaje8").fadeIn();
return false;
} else {
$('.perfect2').removeClass('transparente');
}
return true;
}
});
Obviamente hay mnodificaciones en el HTML del form, quedo asi:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>formu</title>
<script type="text/javascript" src="scripts/jquery-1.8.3.min.js"></script>
<style type="text/css">
.cuerpo {
border: thin solid #69F;
height: 600px;
width: 650px;
}
.div-primeros-campos {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 5px;
}
.nombre {
}
.email {
}
.telefono {
}
.localidad {
}
.lugardetrabajo {
}
.dimension {
}
.archivos {
}
.consulta {
}
.encuesta {
}
.botonenviarlo {
clear: right;
float: right;
}
.perfect {
text-align: center;
display: block;
background-color: #3CF;
width: 200px;
right: auto;
clip: rect(auto,auto,auto,auto);
clear: left;
float: left;
}
.perfect2 {
text-align: center;
display: block;
clear: left;
float: left;
background-color: #F36;
width: 400px;
right: auto;
clip: rect(auto,auto,auto,auto);
}
.transparente {
display: none;
}
.errores{
-wedkit-box-shadow: 0 0 5px rgba(0,0,0,0.3);
-moz-box-shadow: 0 0 5px rgba(0,0,0,0.3);
-o-box-shadow: 0 0 5px rgba(0,0,0,0.3);
background: red;
box-shadow: 0 0 5px rgba(0,0,0,0.3);
color: #fff;
display: none;
font-size: 13px;
margin-top: -23px;
width: 250px;
text-align: center;
position: absolute;
padding: 5px;
margin-left: 200px;
font-family: "Open Sans";
}
</style>
</head>
<body>
<form method="post" name="formulariotipopresupuesto" class="cuerpo" id="formulario2">
<div class="div-primeros-campos">
<input name="nombre" type="text" class="nombre" id="nombre" placeholder=" *Nombre"/>
<div id="mensaje1" class="errores">DEBE INGRESAR SU NOMBRE!</div>
</div>
<div class="div-primeros-campos"><input name="email" type="text" class="email" placeholder=" *E-Mail" />
<div id="mensaje2" class="errores">DEBE INGRESAR UN EMAIL CORRECTO!</div>
</div>
<div class="div-primeros-campos"><input name="telefono" type="text" class="telefono" placeholder=" Telefono" /> </div>
<div class="div-primeros-campos"><input name="localidad" type="text" class="localidad" placeholder=" *Localidad" />
<div id="mensaje3" class="errores">NECESITAMOS SABER SU LOCALIDAD!</div>
</div>
<div>
Indique cual sería nuestra área de trabajo:
<br />
Puede elegir más de una opción. <div id="mensaje4" class="errores">SELECCIONE AL MENOS UNA OPCION!!</div>
</div>
<div>
<table width="633" class="lugardetrabajo">
<tr>
<td width="251"><label>
<input type="checkbox" name="lugardetrabajo[]" value="Interior de una casa." />
Interior de una casa.</label></td>
<td width="415"><label>
<input type="checkbox" name="lugardetrabajo[]" value="Local de comidas (Ej. Pizzería, rotisería, heladería)" />
Local de comidas (Ej. Pizzería, rotisería, heladería)</label></td>
</tr>
<tr>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Exterior de una casa (Ej. jardín)." />
Exterior de una casa (Ej. jardín).</label></td>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Un negocio (Ej. Maxi quiosco, ferretería)" />
Un negocio (Ej. Maxi quiosco, ferretería)</label></td>
</tr>
<tr>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Casa y jardín completos." />
Casa y jardín completos.</label></td>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Un salón (Ej. Iglesia, salón de fiestas)" />
Un salón (Ej. Iglesia, salón de fiestas)</label></td>
</tr>
<tr>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Un techo." />
Un techo.</label></td>
<td><label>
<input type="checkbox" name="lugardetrabajo[]" value="Escuela o Institución (Ej. Colegio, Jardín de infantes)" />
Escuela o Institución (Ej. Colegio, Jardín de infantes)</label></td>
</tr>
</table>
</div>
<div>De qué tamaño aproximado considera que es el total del lugar a tratar:</div>
<div>
<table width="218" class="dimension">
<tr>
<td><label>
<input type="radio" name="dimension" value="Grande"/>
Grande.</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="dimension" value="Mediano"/>
Mediano</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="dimension" value="Chico"/>
Chico.</label></td>
</tr>
</table>
<div id="mensaje5" class="errores">SELECCIONE UN TAMAÑO APROXIMADO!</div>
</div>
<div><textarea name="consulta" cols="" rows="" class="consulta" placeholder=" Consulta..."></textarea>
<div id="mensaje6" class="errores">CUENTENOS SU PROBLEMA...</div>
</div>
<div>Como conoció nuestra web?<div id="mensaje8" class="errores">POR FABOR, ELIJA UNA RESPUESTA...</div></div>
<div><select name="encuesta" id="encuesta" class="encuesta" >
<option>-Por Facebook.</option>
<option>-A traves de otra web.</option>
<option>-Por revista publicitaria.</option>
<option>-Buscando en Google</option>
<option selected="selected">-Elija una respuesta...</option>
</select></div>
<div id="perfecto" class="perfect" style="display:none">enviado!
</div>
<div id="road" class="perfect2 transparente" >pensando...
</div>
<input name="boton" type="submit" class="botonenviarlo" value="Enviar" />
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="scripts/funcionesdos.js"></script>
</body>
</html>
Ademas si podría también alguien ayudarme con lo siguiente:
El campo Telefono, no es obligatorio, no hace una validación el .js simplemente envía el dato si es que el cliente lo llena o no lo envía si no hay nada. pero e gustaría que si el cliente no lo reyena , me llegue un mensaje qie diga: "no ha proporcionado un numero de teléfono" , ya que en la respuesta automática a mis clientes hay un texto que dice: "gracias por contactarnos etc etc , responderemos al $mail etc etc o lo llamaremos al: $teléfono, pero si no rellena el campo mejor seria que dijiera: "lo llamaremos al: Usted No ha proporcionado un numero telefónico".
Si alguien sabe.. lo agradezco!.