我的问题是,当我在我的 jQuery ajax 顶部有一个 on.('click') 时单击提交按钮时,成功工作但不会将信息发送到我的数据库。否则,当我在 jQuery 上使用 on.('submit') 时,ajax 不起作用,但 PHP 可以。
这是我的表格的代码。
<div id="seccion_registro">
<div id="login_error">Campo no valido!</div>
<div id="registro_succes"></div>
<form id="form2" name="form2" action="usuario.php" method="POST">
<label for="nombre">Nombre</label>
<input id="nombre"type="text" class="text" size="20" name="nombre">
<label for="usuario">Usuario</label>
<input id="password1" type="text" class="text" size="20" name="usuario">
<label for="contrasena">Contraseña</label>
<input id="password1" type="password" class="text" size="20" name="contrasena">
<label for="confirmar">Confirmar contraseña</label>
<input id="password2" type="password" class="text" size="20" name="confirmar">
<label for="email">Email</label>
<input type="text" class= "text" size="20" name="email">
<div>
<input type="submit" class="boton1" value="Regístrate" size="56">
</div>
</form>
这是我的jquery ajax 函数,我使用fancybox 来显示表单和成功或错误响应。
$(document).ready(function(){
$('.boton1').on('click', function(e){
e.preventDefault();
var name = $('#nombre').val();
var password1 = $('#password1').val();
var password2 = $('#password2').val();
var errors = '';
if(name.length < 5 || name == ''){
errors += '<p>tsads</p>';
}
if(errors != ''){
$("#login_error").show();
$.fancybox.resize();
//$("#login_succes").hide();
} else {
var datos = $('#form2').serialize();
$.ajax({
url:'Usuario.php',
data:'datos',
type:'POST',
beforeSend: function(){
$('#seccion_registro').html('<div id="carga" style="margin:0 auto;width:auto;background-position:center center;"></div>');
},
success: function(){
$('#seccion_registro').html('<p class="text_enhorabuena">Enhorabuena, has sido registrado!</p>');
$("#registro_succes").show();
$.fancybox.resize();
}
});
}
});
最后这是我的 PHP 脚本。
<?php
include 'conexion.php';
$_POST['nombre'];
$_POST['usuario'];
$_POST['contrasena'];
$_POST['email'];
$consulta = "INSERT INTO usuario (Usuario, password, email, nombre ) VALUES ('".$_POST['usuario']."',
'".$_POST['contrasena']."', '".$_POST['email']."', '".$_POST['nombre']."')";
if (!mysqli_query($conexion,$consulta))
{
die('Error: ' . mysqli_error($conexion));
}
else{
//Do stuff
};
mysqli_close($conexion);
?>