Buenas, estoy intentando insertar en una base de datos, los datos de un formulario a traves de javascript y ajax pero no me ejecuta la consulta php, y la consulta php funciona porque solo con php y POST funciona.
Dejo el código a ver si alguien puede ayudarme.
NOTA: VALE ya me funciona, los scripts deben ir encima del form que los llama, lógico por otra parte, sólo me falta que no me cambie de pantalla una vez ejecuta el insert.
El echo 'todo OK' lo hace en una nueva ventana. Es como si no detectara ajax y ejecutara el insert del php registro_eliminar en una nueva pagina.
No hace caso a my_script.js
HTML
<form id="myForm" method="post" action="registro_eliminar.php">
//<textarea name="textoEliminar" style="width:99%; margin:auto; height:200px;">//</textarea>
//</div>
//<div class="modal-footer">
<input type="hidden" value="eliminar" name="eliminar"/>
<input type="hidden" value="<?= $piso['id_piso']?>" name="id_piso"/>
<button id="sub" class="btn btn-default" style= "background-color:#6fb3e0 !important; border-color:#6fb3e0;" >Enviar</button>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script>
<script src="my_script.js" type="text/javascript"></script>
registro_eliminar.php (no llega a ejecutarse esta parte)
<?php
include '/libs/comoon.php';
//if ( !empty( $_POST['eliminar'] ) ) {
$propietario = $_SESSION['user']['id'];
$tex = $_POST['textoEliminar'];
$date = date("Y-m-d H:i:s");
$id_piso = $_POST['id_piso'];
//registra los datos del empleados
$sql="INSERT INTO eliminar_piso (id_propietario, texto, fecha, estado, id_piso) VALUES ('$propietario', '$tex', '$date', '0', '$id_piso')";
$resultado = $mysqli->query($sql);
if (!$resultado) { echo 'No se pudo ejecutar la consulta: ' . mysql_error(); }else { echo 'ALL OK'; }
// }
?>
my_script.js
$("#sub").click( function() {
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info){ $("#result").html(info);
});
clearInput();
});
$("#myForm").submit( function() {
return false;
});
function clearInput() {
$("#myForm :input").each( function() {
$(this).val('');
});
}