Ajax提交的表单未保存到数据库中

时间:2015-09-15 17:45:43

标签: javascript php jquery mysql ajax

我有一个不同输入的表单。在submit我使用Ajax将数据发送到MySQL表。如果输入为空,则jQuery validate插件会停止提交操作。

POST提交有效,因为我使用Firebug并且响应Ajax告诉我;但是数据没有保存在我的数据库中。

我不知道哪个部分导致了这个问题,因为在JS中它并没有告诉我任何问题。

我的HTML / JS代码如下所示:

$(document).ready(function() {
    $("#ok").hide();

    $("#formula").validate({
        rules: {
    nombre: {required: true},
    mail: {required: true},
    estado: {required: true},
    imagen: {required:true,
    extension:'jpeg|png|jpg|gif'},
    checa:{required:true}
        },
        messages: {
            nombre: "Debe introducir su nombre.",
            mail:"Introduce una dirección de e-mail válido.",
            estado : "Debes seleccionar tu estado donde resides.",
            imagen : "Selecciona una imagen válida, jpg, jpeg, png o gif.",
            checa: "Debes aceptar los terminos de uso y la política de privacidad"
        },
        submitHandler: function(form){
            var dataString = 'nombre='+ nombre
                        + 'mail=' + mail        
                        + '&estado=' + estado
                        + '&imagen=' + imagen
                        + '&checa=' + checa 
            $("#ok").show();
            $.ajax({
                type: "POST",
                url:"envia.php",
                data: dataString,
                success: function(msg){
                            $("#ok").html("<strong>Mensaje enviado existosamente, nos pondremos en contacto a la brevedad.</strong>");
                            document.getElementById("nombre").value="";
                            document.getElementById("mail").value="";
                            document.getElementById("estado").value="";
                            document.getElementById("imagen").value="";
                            document.getElementById("checa").value="";
                            setTimeout(function() {$('#ok').fadeOut('fast');}, 3000);
                }
            });
        }
    });
});
<section class="wrapper">

    <form method="post" name="formulario" id="formula" enctype="multipart/form-data">
        <div id="ok"></div>
        <label>Nombre:</label>
        <input type="text"  name="nombre" id="nombre" />
        <label>Email:</label>
        <input type="email" name="mail" id="mail" />
        <label>Estado:</label>
        <!--<div class="styled-select">-->
        <select name="estado" id="estado">
            <option value="">Selecciona tu estado:</option>
            <option>Aguascalientes</option>
            <option>Baja California</option>
            <option>Baja California Sur</option>
            <option>Campeche</option>
            <option>Chiapas</option>
            <option>Chihuahua</option>
            <option>Coahuila</option>
            <option>Colima</option>
            <option>Distrito Federal</option>
            <option>Durango</option>
            <option>Guanajuato</option>
            <option>Guerrero</option>
            <option>Hidalgo</option>
            <option>Jalisco</option>
            <option>México</option>
            <option>Michoacán</option>
            <option>Morelos</option>
            <option>Nayarit</option>
            <option>Nuevo León</option>
            <option>Oaxaca</option>
            <option>Puebla</option>
            <option>Querétaro</option>
            <option>Quintana Roo</option>
            <option>San Luis Potosí</option>
            <option>Sinaloa</option>
            <option>Sonora</option>
            <option>Tabasco</option>
            <option>Tamaulipas</option>
            <option>Tlaxcala</option>
            <option>Veracruz</option>
            <option>Yucatán</option>
            <option>Zacatecas</option>
        </select>
       <!--</div>
       <div id="file">Chose file</div>-->
        <input type="file" name="imagen" id="imagen" class="upload" />
        <input type="checkbox" name="checa" id="checa" value="Acepto">Acepto los terminos y condiciones y la politica de privacidad

    <input name="URLBack" type="hidden" id="URLBack" value="<?php echo "hhtp://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" />
    <input name="input" id="enviar" type="submit" value="Enviar" />
    </form>
</section>

我的PHP文件如下所示:

include 'conexion.php';
$con = conexion();

$nombre=substr($_POST['nombre'],0,2);
$sql= "SELECT MAX(id) FROM base_de_datos";
  $rs=mysql_query($sql);
  if(isset($rs) && mysql_num_rows($rs)>0)
  {
      $row=mysql_fetch_row($rs);
      $num=$row;
      mysql_free_result($rs);     
   }

$tumb = implode($num); 

$sumando = $tumb + 1;   

if ($_FILES["imagen"]["error"] > 0){
    echo "ha ocurrido un error";
} else {
    $permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
    $limite_kb = 2000;

    if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 2048){

        $ruta = "imagenes/" . $_FILES['imagen']['name'];

        if (file_exists($ruta)){

            echo $_FILES['imagen']['name'] . ", este archivo existe";
        }
            else{
                $temp = explode(".", $_FILES["imagen"]["name"]);
                $newfilename = 'contest'. $sumando . '.' . end($temp);
                move_uploaded_file($_FILES["imagen"]["tmp_name"], "imagenes/" . $newfilename);
            } 
        }

}

$caracteres = "AABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$numerodeletras=10;
$cadena = "";
for($i=0;$i<$numerodeletras;$i++)
{
    $cadena .= substr($caracteres,rand(0,strlen($caracteres)),1); 
}

$serie=$nombre.$sumando;
$este= date("Y/m/d");
echo $serie;

$_GRABAR_SQL = "INSERT INTO base_de_datos (nombre,email,estado,imagen,condiciones_de_uso,clave,fecha) VALUES ('$_POST[nombre]','$_POST[mail]','$_POST[estado]','$newfilename','$_POST[checa]','$serie','$este')";
mysql_query($_GRABAR_SQL);

$query=mysql_insert_id();

$headers  = "MIME-Version: 1.0\r \n";
$headers .= "Content-type: text/html; charset=utf-8 \r \n";
$headers .= "Return-Path: ".$_POST['nombre']." <".$_POST['mail']."> \r \n";
$headers .= "From: OMA Plaza <noreply@example.com> \r \n";
$headers .= "Reply-To: ".$_POST['nombre']." <".$_POST['nombre']."> \r \n";
$headers .= "X-Priority: 1\r\n"; 
$mail = mysql_real_escape_string($_POST['mail']);
if ( function_exists( 'mail' ) )
{
    echo 'mail() is available';
}
else
{
    echo 'mail() has been disabled';
}
$asunto = "";
$confir = "Su mensaje fue enviado exitosamente, nos pondremos en contacto con usted a la brevedad";
$mensage = "---------------------------------- \n";
    $mensage.= "            Contacto               \n";
    $mensage.= "---------------------------------- \n";
    $mensage.= "Nombre:   ".$_POST['nombre']."\n";
    $mensage.= "Clave Confirmación:    ".$serie."\n";
    $mensage.= "Email: ".$_POST['mail']."\n"; 

          mail ($mail, $asunto, $mensage, $headers);

0 个答案:

没有答案