好吧,我在html上有一个表单,它对php函数进行ajax调用,将表单中的值插入到我的数据库中。所以,没有问题,直到我得到双行插入,我得到正确的行,另一个空行。
我的js代码
'use strict';
$.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-z\s\ñ\Ñ]+$/i.test(value);
}, "Solo letras por favor");
$("#enviarEditar").click(function(){
var fiscales;
var fiscales2;
var personaContacto;
var email;
var pass;
//VALIDACION DEL FORMULARIO EDITAR
$('#formu').validate({
rules: {
fiscales:{
required:true
},
fiscales2:{
required:false
},
personaContacto:{
required: true
},
email:{
required:true,
minlength:4,
email:true,
},
pass:{
required:true,
minlength:5
},
},
messages: {
email: {
remote: "Este correo ya esta en uso."
}
},
submitHandler: function() {
fiscales = $('#fiscales').val();
fiscales2 = $('#fiscales2').val();
personaContacto = $('#personaContacto').val();
email = $('#email').val();
pass = $("#pass").val();
$.ajax({
type: 'POST',
dataType: 'json',
url: 'php/registro_admin.php',
data: {
fiscales: fiscales,
fiscales2: fiscales2,
personaContacto:personaContacto,
email: email,
pass:pass
},
error: function(xhr, status, error) {
$.growl({
icon: "glyphicon glyphicon-ok",
message: "Administrador registrado correctamente!"
},{
type: "success"
});
},
success: function(data) {
var $mitabla = $("#miTabla").dataTable( { bRetrieve : true } );
$mitabla.fnDraw();
if(data[0].estado==0){
$.growl({
icon: "glyphicon glyphicon-ok",
message: "Administrador registrado correctamente"
},{
type: "success"
});
}else{
$.growl({
icon: "glyphicon glyphicon-ok",
message: "Administrador registrado correctamente!"
},{
type: "success"
});
}
},
complete: {
}
});
}
});
//FIN VALIDACION FORMULARIO EDITAR
});
//FIN CLICK
我的php文件:
<?php
header('Access-Control-Allow-Origin: *');
/* Database connection information */
include("mysql.php" );
function fatal_error($sErrorMessage = '') {
header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
die($sErrorMessage);
}
/*
* MySQL connection
*/
if (!$gaSql['link'] = mysql_pconnect($gaSql['server'], $gaSql['user'], $gaSql['password'])) {
fatal_error('Could not open connection to server');
}
if (!mysql_select_db($gaSql['db'], $gaSql['link'])) {
fatal_error('Could not select database ');
}
mysql_query('SET names utf8');
/*
* SQL queries
* Get data to display
*/
$fiscales = $_GET["fiscales"];
$fiscales2 = $_GET["fiscales2"];
$personaContacto = $_GET["personaContacto"];
$email = $_GET["email"];
$pass = $_GET["pass"];
$query1= " INSERT INTO admin (datos_fiscales, datos_fiscales2, persona_contacto, email) VALUES ('".$fiscales."','".$fiscales2."','".$personaContacto."','".$email."')";
log($query1);
echo $query1;
$query_res1 = mysql_query($query1);
if($query_res1){
$sql = "SELECT id_admin
FROM admin
where persona_contacto='".$personaContacto."'";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res, MYSQL_ASSOC))
{
$id_nuevo=$row['id_admin'];
}
}
//echo "idenuevo => $id_nuevo";
for ($i=0;$i<count($personaContacto);$i++)
{
//echo "<br> CLinicaid " . $i . ": " . $clinicas[$i];
$query2 = "insert into usuario (nombre_usuario,password,tipo,cl_cliente,cl_editor,cl_medio,cl_admin) values(
'". $personaContacto . "',
'" . $pass . "',
'admin',null,null,null,
".$id_nuevo.")" ;
//echo"$query1";
$query_res2 = mysql_query($query2);
echo $query2;
}
if (!$query_res1||!$res||!$query_res2) {
// $mensaje = 'Error en la consulta de inserts: ' . mysql_error() . "\n";
// $estado = mysql_errno();
if (mysql_errno() == 1062) {
$mensaje = "Imposible añadir el admin, id admin ya existe";
$estado = mysql_errno();
} else {
$mensaje = 'Error en la consulta: ' . mysql_error() ;
$estado = mysql_errno();
}
}
else
{
$mensaje = "Insercion correcta";
$estado = 0;
}
$resultado = array();
$resultado[] = array(
'mensaje' => $mensaje,
'estado' => $estado
);
echo json_encode($resultado);
?>
我只有第一个插入的问题,因为在表中的第二个插入中,一切都很顺利。
非常感谢
此致
答案 0 :(得分:1)
您没有阻止默认表单提交处理程序。它首先触发ajax提交,然后表单将提交,因为它是默认行为。
$("#enviarEditar").click(function(e) {
e.preventDefault();
// DO YOUR AJAX AND OTHER STUFF BELOWWW
});
答案 1 :(得分:0)
好的,我找到了答案,它不是好的,但它确实有效。 我必须在执行插入后删除id为空的删除操作。
感谢大家帮助我